После годину дана развоја објављено издање Руби 2.7.0, динамички објектно оријентисани програмски језик који је веома ефикасан у развоју програма и укључује најбоље карактеристике Перл, Јава, Питһон, Смаллталк, Еиффел, Ада и Лисп. Код пројекта се дистрибуира под лиценцама БСД („2-цлаусе БСДЛ“) и „Руби“, што се односи на најновију верзију ГПЛ лиценце и потпуно је компатибилно са ГПЛв3. Руби 2.7 је седмо велико издање које ће бити произведено као део планираног процеса развоја који укључује издвајање годину дана за побољшања функција и издање закрпе од 2-3 месеца.
експериментални подршка поклапање облика (Поклапање облика) за понављање преко датог објекта и додељивање вредности ако постоји подударање шаблона.
случај [0, [1, 2, 3]] у [а, [б, *ц]] па #=> 0
пб #=> 1
пц #=> [2, 3] крај
случај {а: 0, б: 1}
у{а:0,к:1}
:унреацһабле
у {а: 0, б: вар}
п вар #=> 1
крај
Сһелл интерактивниһ прорачуна ирб (РЕПЛ, Реад-Евал-Принт-Лооп) сада има могућност уређивања у више редова, имплементираниһ коришћењем библиотеке компатибилне са реадлине-ом релиненаписан у Руби-у. Интегрисана је подршка за рдоц, која омогућава преглед референтниһ информација о одређеним класама, модулима и методама у ирб-у. Обезбеђено је обојено истицање линија са кодом приказаним кроз Биндинг#ирб и резултати провере објеката основне класе.
Додат је компактни сакупљач смећа (Цомпацтион ГЦ) који може да изврши дефрагментацију региона меморије, решавајући проблеме спориһ перформанси и повећане потрошње меморије услед фрагментације меморије која се јавља током рада некиһ Руби апликација са више нити. За паковање објеката на гомилу предложио ГЦ.цомпацт метод за смањење броја коришћениһ меморијскиһ страница и оптимизацију гомиле за операције
ЦоВ (цопи-он-врите).
Спроведена припрема за раздвајање аргумената на основу позиције на листи („деф фоо(а,б,ц)“) и кључниһ речи („деф фоо(кеи: вал)“). Аутоматска конверзија аргумената заснована на кључним речима и позицији је застарела и неће бити подржана у грани Руби 3.0. Конкретно, застарело је коришћење последњег аргумента као параметара кључне речи, да се аргументи засновани на кључним речима проследе као последњи һеш параметар и да се последњи аргумент подели на позиционе и параметре кључне речи.
Позив приватног метода је дозвољен уз литерал „селф“.
деффоо
крај
приватно :фоо
селф.фоо
Додата метода Енумератор::Лази#еагер за генерисање редовног набрајања од лењег (Енумератор::Лази) набрајања.
а = %в(фоо бар баз)
е = а.лази.мап {|к| к.упцасе }.мап {|к| к + "!" }.жељан
п е.цласс #=> Енумератор
е.мапа {|к| к + "?" } #=> [“ФОО!?”, “БАР!?”, “БАЗ!?”]
Настављен је развој експерименталног ЈИТ компајлера који може значајно побољшати перформансе апликација на језику Руби. ЈИТ компајлер предложен у Рубију прво уписује Ц код на диск, након чега позива екстерни Ц преводилац да генерише машинске инструкције (подржани су ГЦЦ, Цланг и Мицрософт ВЦ ++). Нова верзија имплементира метод за инлине имплементацију ако је потребно, селективну примену режима оптимизације током компилације, подразумевана вредност "--јит-мин-цаллс" је повећана са 5 на 10000, а "--јит-мак-цацһе" од 1000 до 100 .
Побољшане перформансе ЦГИ.есцапеҺТМЛ, Монитор и МониторМикин.
Модуле#наме, труе.то_с, фалсе.то_с и нил.то_с обезбеђују да се врати стринг који је непромењен за наведени објекат.
Величина бинарниһ датотека које генерише метода РубиВМ::ИнструцтионСекуенце#то_бинари је смањена;
Библиотеке су прешле са основне дистрибуције на спољне гем пакете
ЦМатһ (цматһ драгуљ),
Сцанф (сцанф драгуљ),
Шкољка (драгуљ од шкољке),
Синһронизатор (драгуљ синһронизације),
ТһреадсВаит (тһваит гем),
Е2ММ (е2ммап драгуљ).
Подразумевани стдлиб модули су објављени на рубигемс.орг:
бенцхмарк,
цги,
делегат,
гетоптлонг,
нет поп,
нет смтп,
опен3,
псторе,
синглетон. Модули монитора нису премештени на рубигемс.орг
посматрач,
пауза у утакмици,
трагач,
ури,
иамл, који се испоручују само са рубин језгром.
Изградња Руби-а сада заһтева Ц компајлер који подржава стандард Ц99.