Ruby is 'n multiplatform, gratis verspreide, funksie ryk en open source command line sagteware wat van die grond af ontwerp is om 'n kragtige programmeertaal te bied vir ontwikkelaars wat aansoek in Ruby wil bou. .
Kenmerke, baie funksies
Belangrike kenmerke sluit in 'n eenvoudige sintaksis wat deur Ada en Eiffel geïnspireer word, bedryfstelsel onafhanklike threading, uitsonderingshanteringsvermoëns vir die hantering van foute, talle operateurs, 'n suiwer en volledige objekgeoriënteerde taal, sowel as ondersteuning om metodes by 'n klas by te voeg.
Ruby beskik ook oor 'n enkele erfenis, ware sluiting, blokke in sy sintaksis, 'n ware merk-en-vee vullis versamelaar, ondersteuning vir die skryf van C uitbreidings, heelgetalle, ondersteuning vir die laai van uitbreiding biblioteke dinamies, en dit beteken nie benodig veranderlike verklarings.
Begin met Ruby
Die installering van die Ruby-programmeertaal op 'n GNU / Linux-bedryfstelsel is 'n baie maklike taak, aangesien die pakket beskikbaar is vir aflaai op alle groot verspreidings, direk vanaf hul hoof sagteware-bewaarplekke. Gebruik die ingeboude Software Center-program om dit te installeer.
As alternatief kan die nuutste weergawe geïnstalleer word met die bronpakket, wat gratis op Softoware versprei word. Laai dit eenvoudig af en stoor dit op jou tuisgids, trek die argief uit en navigeer na die ligging van die onttrekde argieflêers in 'n terminale emulatorprogram (bv. Cd / home /softoware/ruby-2.2.0).
Begin die & lsquo;. / configure & rsquo; opdrag om die projek te konfigureer (u kan die & quot; .configurasie-help'- bevel gebruik om beskikbare opsies vir die optimalisering van Ruby vir 'n spesifieke hardewareargitektuur te sien). Gaan dan die & quot; maak & rsquo; opdrag om dit op te stel en die "sudo maak installeer & rsquo; opdrag om dit te installeer.
Ondersteuning op GNU / Linux, Windows, Mac OS X, BeOS en OS / 2
Ruby is 'n kruis platform sagteware wat suksesvol gebruik kan word op alle GNU / Linux verspreidings, sowel as op enige UNIX-bedryfstelsel, insluitend Mac OS X, BeOS, OS / 2 en Microsoft Windows. Dit is verenigbaar met beide 32-bits en 64-bits rekenaar platforms.
Wat is nuut in hierdie weergawe:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.5.0:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.4.2:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.4.1:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.4.0:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.3.3:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.3.1:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.3.0:
- 'n Bevrore String Letterlike Pragma word bekendgestel. Met Ruby 2.1 is "str" .freeze geoptimaliseer om voorwerpallokasie te verminder. Ruby 2.3 stel 'n nuwe magiese kommentaar- en opdraglyn opsie bekend om al die stringletters in die brondelêers te vries. Daarbenewens vir ontfouting, kan jy kry waar die voorwerp geskep word op "kan nie bevrore string verander nie" fout deur --debug = gevriesde-string-letterlike opsie vir die opdraglyn.
- 'n Veilige navigasieoperateur (sogenaamde eensame operateur) &., wat reeds in C #, Groovy en Swift bestaan, word bekendgestel om nilhantering as obj & .foo te vergemaklik. Array # dig en Hash # grawe word ook bygevoeg. Let daarop dat dit gedra as 'n poging! van Aktiewe Ondersteuning, wat slegs negatief hanteer.
- Die did_you_mean gemeng is gebundeld. Die did_you_mean juweel wys die kandidate op die NameError and NoMethodError om ontfouting te vergemaklik.
- RubyVM :: InstructionSequence # to_binary en .load_from_binary word as eksperimentele funksie bekendgestel. Met hierdie kenmerke kan ons 'n ISeq (bytekode) pre-kompileringstelsel maak.
- Dit sluit ook baie prestasieverbeterings in, byvoorbeeld die heroorweging van data-invoerstruktuur, die aanbring van nuwe tabeldata strukture, die optimalisering van Proc # -oproep, masjienkode vlakke tuning vir objek toekenning en metode roeping kode, slimmer instansie veranderlike data struktuur, Socket en I / O kan gebruik maak van 'uitsondering:' sleutelwoorde vir hoëprestasie-nie-blokkeer-I / O en so aan.
Wat is nuut in weergawe 2.2.3:
- Hierdie weergawe bevat die beveiligingsoplossing vir 'n RubyGems-domein naamverifikasie kwesbaarheid. CVE-2015-3900 Versoek kapasiteit in RubyGems 2.4.6 en vroeër
Wat is nuut in weergawe 2.2.2:
- Hierdie weergawe bevat die beveiligingsoplossing vir 'n OpenSSL-uitbreiding hostname verifikasie kwesbaarheid.
Wat is nuut in weergawe 2.2.0:
- VM (metode kas)
- RGenGC (Sien ko1 se RubyKaigi-aanbieding en RubyConf 2013-aanbieding)
- verfynings # 8481 # 8571
- syntax veranderinge:
- Desimale / Komplekse Letterlike # 8430
- def se terugkeerwaarde # 3753
- Bignum:
- gebruik GMP # 8796
- String # scrub # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 en RubyGems 2.2.0
- "letterlike". vries is nou geoptimaliseer # 9042
- Add exception # cause # 8257
- biblioteke soos BigDecimal, JSON, NKF, Rake, RubyGems en RDoc bywerk
- vloeke verwyder # 8584
Wat is nuut in weergawe 2.0.0-p0:
- Kenmerke van die taal:
- Argumente vir sleutelwoorde, wat buigsaamheid bied vir die ontwerp van API
- Module # prepend, wat 'n nuwe manier is om 'n klas uit te brei
- 'n letterlike% i, wat maklik 'n verskeidenheid simbole skep
- __ dir__, wat die dirname van die lêer wat tans uitgevoer word, terugvoer
- Die UTF-8 standaard kodering, wat baie magiese kommentaar onversoenbaar maak
- Ingeboude biblioteke:
- Enumerable # lui en Enumerator :: Lazy, vir (moontlik oneindige) lui stroom
- Opnemer # grootte en omvang # grootte, vir lui grootte evaluering
- #to_h, wat 'n nuwe konvensie is vir omskakeling na Hash
- Onigmo, wat 'n nuwe regexp-enjin is ('n vurk van Oniguruma)
- Asynchroniese uitsonderingshanterings-API
- Debug ondersteuning:
- DTrace-ondersteuning, wat die aanloop-tyddiagnose in produksie moontlik maak
- TracePoint, wat 'n verbeterde opsporing API is
- Prestasieverbeterings:
- GC-optimalisering deur bitmap-merkering
- Kernel # vereis optimalisering wat Rails begin baie vinnig
- VM-optimalisering soos metodeversending
- Optimalisatie van float operation
Wat is nuut in weergawe 1.9.3-p392:
- Hierdie weergawe bevat beveiligingsoplossings oor gebundelde JSON en REXML:
- Sekuriteit Probleem in verband met die gebruik en onveilige voorwerpe in JSON (CVE-2013-0269)
- Entiteit uitbreiding DoS kwesbaarheid in REXML (XML bom)
- En daar is ook klein foutbotsings ingesluit.
Wat is nuut in weergawe 1.9.3-p385:
- Hierdie weergawe bevat 'n beveiligingsoplossing oor gebundelde RDoc.
Wat is nuut in weergawe 1.9.3-p384:
- Hierdie weergawe bevat 'n beveiligingsoplossing oor gebundelde RDoc.
Wat is nuut in weergawe 1.9.3-p286:
- $ SAFE ontsnap kwesbaarheid oor uitsondering # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Onbedoelde lêer skepping wat veroorsaak word deur 'n onwettige NUL karakter in te voeg
- Ander baie foutoplossings.
Kommentaar nie gevind