Ruby on monitasoinen, vapaasti hajautettu, monipuolinen ja avoimen lähdekoodin komentorivin ohjelmisto, joka on suunniteltu pohjimmiltaan tarjota tehokas ohjelmointikieli kehittäjille, jotka haluavat rakentaa sovelluksen Ruby .
Ominaisuudet, paljon ominaisuuksia
Tärkeimpiin ominaisuuksiin kuuluu Adan ja Eiffelin innoittamat yksinkertaiset syntaksit, käyttöjärjestelmän riippumaton ketjuttaminen, poikkeamien käsittelyominaisuudet virheiden käsittelyyn, lukuisat operaattorit, puhdas ja täydellinen objekti-orientoitu kieli sekä tuki menetelmien lisäämiseen luokalle. / p>
Lisäksi Rubyllä on vain yksi perintö, todelliset sulkimet, lohkot sen syntaksissa, todellinen roskakorin keräilijä, tuki C-laajennusten kirjoittamiseen, kokonaislukuja, tuki laajennuskirjastojen dynaamiselle lataamiselle ja se ei tarkoita sitä tarvitsevat muuttuvia ilmoituksia.
Rubyn aloittaminen
Ruby-ohjelmointikielen asentaminen GNU / Linux-käyttöjärjestelmään on erittäin helppo tehtävä, koska paketti on ladattavissa kaikilla tärkeimmillä jakeluilla suoraan pääohjelmistojen arkistoista. Asenna se sisäänrakennetulla Software Center -sovelluksella.
Vaihtoehtoisesti uusin versio voidaan asentaa lähdepaketin avulla, joka toimitetaan ilmaiseksi Softowareen. Lataa se ja tallenna se kotihakemistoosi, poista arkisto ja siirry poistettujen arkistotiedostojen sijaintiin pääteemulaattorisovelluksessa (esim. Cd /home/softoware/ruby-2.2.0).
Suorita & lsquo; ./ configure & rsquo; komento konfiguroida projekti (voit käyttää & lsquo. ./ configure --help & rsquo; -komentoa nähdäksesi käytettävissä olevat vaihtoehdot Rubin optimoimiseksi tietylle laitteistokokonaisuudelle). Sitten suorita & lsquo; tee & rsquo; komento kääntää se ja & lsquo; sudo tehdä asennus & rsquo; komento asentaa sen.
Tuetut GNU / Linux, Windows, Mac OS X, BeOS ja OS / 2
Ruby on monipuolinen sovellus, jota voidaan käyttää kaikissa GNU / Linux-jakeluissa ja kaikilla UNIX-kaltaisilla käyttöjärjestelmillä, kuten Mac OS X, BeOS, OS / 2 ja Microsoft Windows. Se on yhteensopiva sekä 32-bittisten että 64-bittisten atk-alustojen kanssa.
Mitä uutta strong> on tässä versiossa:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.5.0:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.4.2:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.4.1:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.4.0:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versio 2.3.3:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.3.1:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
Uutta strong> versiossa 2.3.0:
- Frozen String Literal Pragma otetaan käyttöön. Ruby 2.1: n kanssa "str". Freeze on optimoitu kohdennuksen vähentämiseksi. Ruby 2.3 esittelee uuden taianomainoksen ja komentorivin vaihtoehdon jäädyttää kaikki merkkijonoiset kirjaimet lähdetiedostoissa. Lisäksi virheenkorjausta varten voit saada, missä kohde luodaan & quot; ei voi muokata jäädytettyä merkkijonoa & quot; virhe --debug = pakattu-merkkijono-kirjaimellinen komentorivivalinta.
- C #-, Groovy- ja Swift-toiminnoissa on jo olemassa turvallinen navigointioperaattori (ns. yksinäinen operaattori &.), joka helpottaa nollakäsittelyä kuten obj & .foo. Array # kaivaa ja Hash # kaivaa lisätään myös. Huomaa, että tämä toimii yritä! aktiivista tukea, jotka käsittelevät erityisesti vain nollaa.
- did_you_mean helmi on yhdistetty. Did_you_mean helmi näyttää ehdokkaat NameError ja NoMethodError helpottamaan virheenkorjausta.
- RubyVM :: InstructionSequence # to_binary ja .load_from_binary tuodaan kokeelliseksi ominaisuudeksi. Näillä ominaisuuksilla voimme tehdä ISeq-koodin (bytecode) esikokoelman.
- Sisältää myös monia suorituskyvyn parannuksia esimerkiksi uudelleenkäyttäessä menetelmän sisääntulon tietorakennetta, ottamalla käyttöön uuden taulukon tietorakenteen, optimoidaksesi Proc # -puhelun, koneen kooditason virityksen objektin allokoinnille ja metodin kutsukoodiksi, Socket ja I / O sallivat käyttää & quot; poikkeus: & quot; avainsanoja korkean suorituskyvyn estävän I / O: n ja niin edelleen.
- Tämä julkaisu sisältää RubyGems-verkkotunnuksen suojauskorjauksen
Uutta strong> nimen vahvistus. CVE-2015-3900 Pyytää kaappauksen haavoittuvuutta RubyGems 2.4.6: ssä ja aiemmin
Uutta strong> versiossa 2.2.2:
- Tämä julkaisu sisältää OpenSSL- palvelimen nimen vahvistus.
Uutta strong> versiossa 2.2.0:
- VM (menetelmän välimuisti)
- RGenGC (Katso ko1: n RubyKaigi-esittely ja RubyConf 2013 esittely)
- Tarkennukset # 8481 # 8571
- syntaksimuutokset:
- desimaali / monimutkainen kirjaimellinen # 8430
- defin palautusarvo # 3753
- Bignum:
- Käytä GMP # 8796
- String # scrub # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 ja RubyGems 2.2.0
- "kirjaimellinen" sulatus on nyt optimoitu # 9042
- Lisää poikkeus # syy # 8257
- Päivitä kirjastot kuten BigDecimal, JSON, NKF, Rake, RubyGems ja RDoc
- poista kirouksia # 8584
Uutta strong> versiossa 2.0.0-p0:
- Kielen ydinominaisuudet:
- Avainsanatuoritukset, jotka tarjoavat joustavuutta sovellusliittymän suunnittelulle
- Moduuli # prepend, mikä on uusi tapa laajentaa luokkaa
- Kirjaimellinen% i, joka luo symboliryhmän helposti
- __ dir__, joka palauttaa käynnissä olevan tiedoston nimen
- UTF-8-oletuskoodaus, joka tekee monet taianomainen kommentit käytöstä
- Sisäänrakennetut kirjastot:
- Enumerable # laiska ja Enumerator :: Lazy, (mahdollisesti ääretön) laiska stream
- Enumerator # -koko ja alue # koko, laiska koon arviointi
- #to_h, joka on uusi konversio Hashille
- Onigmo, joka on uusi regexp-moottori (Oniguruman haarukka)
- Asynkroninen poikkeusten käsittely API
- Debug-tuki:
- DTrace-tuki, joka mahdollistaa tuotannon aikaisen diagnoosin
- TracePoint, joka on parannettu jäljitysrajapinta li>
- Suorituskyvyn parannukset:
- GC-optimointi bittikarttakirjoituksella
- Kernel # vaatii optimointia, joka tekee Rails-käynnistämisestä erittäin nopean
- VM-optimointi, kuten lähetystapa
- Float-toiminnan optimointi
Uutta strong> versiossa 1.9.3-p392:
- Tämä julkaisu sisältää tietoturvakorjauksia JSON: n ja REXML: n kanssa:
- Palvelun hylkääminen ja vaarallisen objektin luomisen haavoittuvuus JSON: ssa (CVE-2013-0269)
- Entityn laajennus DoS-haavoittuvuus REXML-järjestelmässä (XML-pommi)
- Mukana on myös pieniä vikakorjauksia.
- Tämä julkaisu sisältää tietoturvakorjauksen RDoc.
- Tämä julkaisu sisältää tietoturvakorjauksen RDoc.
- $ SAFE poistuu haavoittuvuudesta poikkeuksista # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Tahaton tiedostojen luominen, joka aiheutuu laittoman NUL-merkin lisäämisestä
- muut monet virheenkorjaukset.
Uutta strong> versiossa 1.9.3-p385:
Uutta strong> versiossa 1.9.3-p384:
Uutta strong> versiossa 1.9.3-p286:
Kommentteja ei löytynyt