Ruby er en multiplatform, fritt distribuert, funksjonsrik og åpen kildekode kommandolinjeprogramvare som er designet fra grunnen til å gi et kraftig programmeringsspråk for utviklere som vil bygge applikasjon i Ruby .
Funksjoner, mange funksjoner
Viktige funksjoner inkluderer en enkel syntaks inspirert av Ada og Eiffel, operativsystem uavhengig tråder, unntakshåndteringsfunksjoner for å håndtere feil, mange operatører, et rent og komplett objektorientert språk, samt støtte for å legge til metoder i en klasse.
I tillegg har Ruby bare en eneste arv, sanne nedleggelser, blokker i sin syntaks, en ekte mark-and-sweep sopsamler, støtte for å skrive C-utvidelser, heltall, støtte for å laste utvidelsesbibliotekene dynamisk, og det gjør det ikke trenger variable deklarasjoner.
Komme i gang med Ruby
Installering av Ruby-programmeringsspråket på et GNU / Linux-operativsystem er en veldig enkel oppgave, da pakken er tilgjengelig for nedlasting på alle store distribusjoner, direkte fra deres hovedprogramvarebeholdere. Bruk det innebygde programvaresenter-appen til å installere det.
Som et alternativ kan den nyeste versjonen installeres ved hjelp av kildepakken, som distribueres gratis på Softoware. Bare last den ned og lagre den i din hjemmekatalog, hent ut arkivet og naviger til plasseringen av de hentede arkivfilene i en terminal emulator-app (f.eks. Cd /home /softoware/ruby-2.2.0).
Kjør & lsquo; ./ configure & rsquo; kommandoen for å konfigurere prosjektet (du kan bruke & lsquo; ./ configure --help & rsquo; -kommandoen for å vise tilgjengelige alternativer for optimalisering av Ruby for en bestemt maskinvarearkitektur). Kjør deretter & lsquo; lag & rsquo; kommandoen for å kompilere det og & sudo gjør installasjon & rsquo; kommandoen for å installere den.
Støttes på GNU / Linux, Windows, Mac OS X, BeOS og OS / 2
Ruby er en plattformsoftware som kan brukes med alle GNU / Linux-distribusjoner, samt på alle UNIX-lignende operativsystemer, inkludert Mac OS X, BeOS, OS / 2 og Microsoft Windows. Den er kompatibel med både 32-biters og 64-biters dataplattformer.
Hva er nytt i denne versjonen:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.5.0:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.4.2:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.4.1:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.4.0:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.3.3:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.3.1:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.3.0:
- En frossen streng Literal Pragma er introdusert. Med Ruby 2.1 har "str" .freeze blitt optimalisert for å redusere objektallokering. Ruby 2.3 introduserer et nytt magisk kommentator- og kommandolinjealternativ for å fryse alle strengstavler i kildefilene. I tillegg til feilsøking kan du finne hvor objektet er opprettet på "ikke kan endre frosset streng" feil ved - debug = frosset-streng-bokstavlig kommandolinje-alternativ.
- En sikker navigasjonsoperatør (såkalt ensom operator) &., som allerede finnes i C #, Groovy og Swift, er introdusert for å lette nullhåndtering som obj & .foo. Array # grave og Hash # grave er også lagt til. Vær oppmerksom på at dette oppfører seg som et forsøk! av Active Support, som spesielt håndterer bare null.
- Den did_you_mean perlen er buntet. Den did_you_mean perlen viser kandidatene på NameError og NoMethodError for å lette feilsøking.
- RubyVM :: InstructionSequence # to_binary og .load_from_binary er introdusert som eksperimentell funksjon. Med disse funksjonene kan vi lage et ISeq (bytecode) pre-compilation system.
- Den inneholder også mange ytelsesforbedringer, for eksempel omregning av dataoppdateringsdatastruktur, innføring av ny tabelldatastruktur, optimalisering av Proc # -oppringing, maskinkodenivåinnstilling for objektallokering og metodeoppringningskode, smartere instansvariabel datastruktur, Stikkontakt og I / O tillater å bruke "unntak:" søkeord for høy ytelse ikke-blokkering I / O og så videre.
Hva er nytt i versjon 2.2.3:
- Denne utgaven inneholder sikkerhetsrettingen for et RubyGems-domene sikkerhetsproblemet i navnet. CVE-2015-3900 Be om sikkerhetsproblem i RubyGems 2.4.6 og tidligere
Hva er nytt i versjon 2.2.2:
- Denne utgaven inneholder sikkerhetsrettingen for en OpenSSL-utvidelse Vertsnavnbekreftelsessårbarhet.
Hva er nytt i versjon 2.2.0:
- VM (metodebuffer)
- RGenGC (Se ko1s RubyKaigi presentasjon og RubyConf 2013 presentasjon)
- raffinementer # 8481 # 8571
- Syntaksendringer:
- Decimal / Complex Literal # 8430
- defs returverdi # 3753
- Bignum:
- bruk GMP # 8796
- String # scrub # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 og RubyGems 2.2.0
- "bokstavelig" .freeze er nå optimalisert # 9042
- Legg til unntak # årsak # 8257
- Oppdater biblioteker som BigDecimal, JSON, NKF, Rake, RubyGems og RDoc
- Fjern forbannelser # 8584
Hva er nytt i versjon 2.0.0-p0:
- Språkkjernefunksjoner:
- Søkeordargumenter, som gir fleksibilitet til API-design
- Modul # prepend, som er en ny måte å utvide en klasse på
- En bokstavelig% jeg, som skaper en rekke symboler enkelt
- __ dir__, som returnerer etternavnet til filen som for øyeblikket blir utført
- UTF-8 standardkoding, som gjør mange magiske kommentarer omgjengelige
- Innebygde biblioteker:
- Enumerable # lat og Enumerator :: Lazy, for (muligens uendelig) lat stream
- Enumerator # størrelse og rekkevidde # størrelse, for evaluering av lat størrelse
- #to_h, som er en ny konvensjon for konvertering til Hash
- Onigmo, som er en ny regexp-motor (en gaffel av Oniguruma)
- API for behandling av asynkron unntakshåndtering
- Feilsøkingsstøtte:
- DTrace-støtte, som muliggjør kjøretiddiagnose i produksjon
- TracePoint, som er en forbedret sporings-API
- Resultatforbedringer:
- GC-optimalisering ved hjelp av bitmap-merking
- Kernel # krever optimalisering som gjør Rails oppstart veldig raskt
- VM-optimalisering som metodeforsendelse
- Optimering av flytoperasjon
Hva er nytt i versjon 1.9.3-p392:
- Denne utgaven inkluderer sikkerhetsrettelser om kombinert JSON og REXML:
- Sikkerhetsproblemet i Denial of Service and Unsafe Object Creation i JSON (CVE-2013-0269)
- Enhetsutvidelse DoS-sårbarhet i REXML (XML-bombe)
- Og noen små feilrettinger er også inkludert.
Hva er nytt i versjon 1.9.3-p385:
- Denne utgaven inneholder en sikkerhetsreparasjon om RDoc.
Hva er nytt i versjon 1.9.3-p384:
- Denne utgaven inneholder en sikkerhetsreparasjon om RDoc.
Hva er nytt i versjon 1.9.3-p286:
- $ SAFE unngår sårbarhet om unntak # til_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Utilsiktet filopprettelse forårsaket ved å sette inn et ulovlig NUL-tegn
- Andre mange feilrettinger.
Kommentarer ikke funnet