Urtebeteko garapenaren ostean argitaratuko askatu Ruby 2.7.0, objektuetara zuzendutako programazio-lengoaia dinamikoa, programaren garapenean oso eraginkorra dena eta Perl, Java, Python, Smalltalk, Eiffel, Ada eta Lisp-en ezaugarri onenak biltzen dituena. Proiektuaren kodea BSD ("2 klausula BSDL") eta "Ruby" lizentzien arabera banatzen da, GPL lizentziaren azken bertsioari erreferentzia egiten diona eta GPLv3-rekin guztiz bateragarria dena. Ruby 2.7 planifikatutako garapen prozesu baten barruan ekoitzi den zazpigarren bertsio nagusia da, funtzioen hobekuntzarako urte bat eta 2-3 hilabeteko adabakien kaleratzea barne hartzen dituena.
Esperimentala onartzen eredu bat etortzea (Ereduen parekatzea) emandako objektuaren gainean errepikatzeko eta balio bat esleitzeko eredua bat-etortzerik badago.
kasua [0, [1, 2, 3]] in [a, [b, *c]] pa #=> 0
pb # => 1
pc # => [2, 3] amaiera
Kalkulu interaktiboen irb (REPL, Read-Eval-Print-Loop) lerro anitzeko edizioa du orain, readline bateragarria den liburutegi bat erabiliz inplementatuta. relineaRubyz idatzia. Rdoc-erako euskarria integratuta dago, eta horrek irb-en zehaztutako klase, modulu eta metodoei buruzko erreferentzia-informazioa ikusteko aukera ematen du. Binding#irb bidez erakusten den kodearekin eta oinarrizko klaseko objektuen ikuskapenaren emaitzak eskaintzen dira lerroen kolorez nabarmenduta.
Zabor biltzaile trinko bat (Compaction GC) gehitu da, memoria-eskualde bat desfragmentatu dezakeena, hari anitzeko Ruby aplikazio batzuen funtzionamenduan gertatzen den memoria zatikatzearen ondorioz errendimendu motelaren arazoak eta memoria-kontsumoa areagotzeko arazoak konponduz. Objektuak pila batean biltzeko proposatu GC.compact metodoa erabilitako memoria-orrialde kopurua murrizteko eta eragiketetarako pila optimizatzeko
CoW (kopia-idazketa).
Egindako Zerrendako posizioan oinarritutako argumentuak bereizteko prestatzea ("def foo(a,b,c)") eta gako-hitzak ("def foo(gakoa: val)"). Gako-hitzetan eta posizioan oinarritutako argumentu-bihurketa automatikoa zaharkituta geratu da eta ez da onartuko Ruby 3.0 adarrean. Zehazki, baztertu egin da azken argumentua gako-parametro gisa erabiltzea, gako-hitzetan oinarritutako argumentuak azken hash-parametro gisa pasatzea eta azken argumentua posizio- eta gako-parametroetan zatitzea.
Metodo pribatu bati "auto" literalarekin deitzeko baimena
defoo
amaiera
pribatua :foo
norbera.foo
Gehitu zen Enumerator::Lazy#eager metodoa zenbatzaile alferra batetik ohiko zenbaketa bat sortzeko (Enumerator::Lazy).
a = %w (foo bar baz)
e = a.lazy.map {|x| x.maiuskulaz }.mapa {|x| x + "!" }.gogotsu
p e.class #=> Zenbatzailea
e.mapa {|x| x + "?" } #=> [βFOO!?β, βBAR!?β, βBAZ!?β]
JIT konpiladore esperimental baten garapenak jarraitu du, Ruby hizkuntzako aplikazioen errendimendua nabarmen hobetu dezakeena. Ruby-n proposatutako JIT konpilatzaileak lehenik C kodea idazten du diskoan, eta ondoren kanpoko C konpiladore bati deitzen dio makinen argibideak sortzeko (GCC, Clang eta Microsoft VC ++ onartzen dira). Bertsio berriak linean hedatzeko metodo bat inplementatzen du beharrezkoa bada, optimizazio moduen aplikazio selektiboa konpilazioan zehar, "--jit-min-calls" balio lehenetsia 5etik 10000ra handitzen da eta "--jit-max-cache" 1000tik 100era.
CGI.escapeHTML, Monitor eta MonitorMixin-en errendimendua hobetu da.
Module#name, true.to_s, false.to_s eta nil.to_s zehaztutako objektuarentzat aldatu gabeko kate bat itzultzen dela ziurtatzen dute.
RubyVM::InstructionSequence#to_binary metodoak sortutako fitxategi bitarren tamaina murriztu da;
Osagai integratuen bertsio eguneratuak, barne
Bundler 2.1.2, RubyGems 3.1.2,
Racc 1.4.15,
CSV 3.1.2, REXML 3.2.3,
RSS 0.2.8,
String Scanner 1.0.3;
Liburutegiak oinarrizko banaketatik kanpoko bitxi paketeetara pasa ziren
CMath (cmath harribitxia),
Scanf (scanf harribitxia),
Maskorra (maskorraren harribitxia),
Sinkronizatzailea (sync harribitxia),
ThreadsWait (utzi harribitxia),
E2MM (e2mmap harribitxia).
stdlib modulu lehenetsiak rubygems.org webgunean argitaratzen dira:
erreferentzia,
cgi,
delegatu
getoptlong,
pop garbia,
net-smtp
irekia3,
pstore,
singleton. Monitorearen moduluak ez dira mugitu rubygems.org-era
begirale
denboraz kanpo,
arrastoa,
uri,
yaml, ruby-corearekin soilik bidaltzen direnak.
Ruby eraikitzeak C99 estandarra onartzen duen C konpiladore bat behar du orain.