Ruby е мултиплатформен, свободно разпространяван, богат на функции и софтуер с отворен код командния ред, създаден от самото начало, за да осигури мощен език за програмиране за програмисти, които искат да изградят приложение в Ruby .
Характеристики, много функции
Основните характеристики включват прост синтаксис, вдъхновен от Ada и Eiffel, независима структура на операционната система, възможности за обработка на изключения за обработка на грешки, множество оператори, чист и пълен обектно ориентиран език, както и поддръжка за добавяне на методи към клас. / P>
Освен това Ruby разполага само с едно наследство, истински затваряния, блокира синтаксиса си, истински колекционер за почистване на марки и почистване, поддръжка за писане на C разширения, цели числа, поддръжка за зареждане на разширените библиотеки динамично, и не има нужда от променливи декларации.
Първи стъпки с Ruby
Инсталирането на програмния език Ruby в операционната система GNU / Linux е много лесна задача, тъй като пакетът е достъпен за изтегляне на всички основни дистрибуции директно от главните софтуерни хранилища. Използвайте вграденото приложение на Софтуерния център, за да го инсталирате.
Като алтернатива, най-новата версия може да бъде инсталирана чрез пакета източник, който се разпространява безплатно на Softoware. Просто го изтеглете и го запишете в домашната директория, извлечете архива и отидете до местоположението на извлечените архивни файлове в приложение за емулатор на терминали (например cd /home/softoware/ruby-2.2.0).
Изпълнете & lsquo; ./ configure & rsquo; команда за конфигуриране на проекта (можете да използвате командата & lsquo; / configure --help & rsquo; за да видите наличните опции за оптимизиране на Ruby за специфична хардуерна архитектура). След това, стартирайте "направете & rsquo; командата за съставянето му и "sudo make install & rsquo; команда, за да го инсталирате.
Поддържа се на GNU / Linux, Windows, Mac OS X, BeOS и OS / 2
Ruby е платформен софтуер, който може да се използва успешно за всички дистрибуции на GNU / Linux, както и за всяка операционна система, подобна на UNIX, включително Mac OS X, BeOS, OS / 2 и Microsoft Windows. Той е съвместим с 32-битови и 64-битови компютърни платформи.
Какво е новото в тази версия:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.5.0:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.4.2:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.4.1:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.4.0:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.3.3:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.3.1:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.3.0:
- Въведена е Pragma за замразени ивици. С Ruby 2.1, "str" .freeze е оптимизиран за намаляване на разпределението на обекта. Ruby 2.3 въвежда нов магически коментар и опция за командния ред за замразяване на всички низови литерали в изходните файлове. Освен това за отстраняване на грешки, можете да получите къде е създаден обект в "Не мога да променям замразения String" грешка от --debug = замразен-низ-буквален вариант на командния ред.
- Представен е безопасен навигационен оператор (т.нар. самотен оператор) &., който вече съществува в C #, Groovy и Swift, за да се улесни работата с null като obj & .foo. Array # dig и Hash # dig също се добавят. Имайте предвид, че това се държи като опитайте! на активна поддръжка, която специално се справя само с нула.
- Скъпоценното камъче did_you_mean е обединено. Скъпоценният камък did_you_mean показва кандидатите на NameError и NoMethodError, за да улесни отстраняването на грешките.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary се въвеждат като експериментална функция. С тези функции можем да направим система за предварително компилиране ISeq (bytecode).
- Той също така включва много подобрения на производителността, например преразглеждане на структурата на данните за въвеждане на методите, въвеждане на нова структура за таблици, оптимизиране на Proc # повикване, настройване на нивото на кода на машината за разпределение на обекта и код за повикване на метода, Socket и I / O позволяват да се използва "изключение:" ключови думи за входно / изходен режим с висока производителност и т.н.
Какво е новото във версия 2.2.3:
- Това издание включва защитата за домейн RubyGems уязвимост за потвърждаване на името. CVE-2015-3900 Потърсете уязвимост при отвличане в RubyGems 2.4.6 и по-ранни
Какво е новото във версия 2.2.2:
- уязвимост за установяване на име на хост.
Какво е новото във версия 2.2.0:
- VM (кеш на метода)
- RGenGC (Вижте презентацията на RubyKaigi на ko1 и презентацията на RubyConf 2013)
- усъвършенствания # 8481 # 8571
- промени в синтаксиса:
- Десетични / Комплетни букви # 8430
- връщаната стойност на def # 3753
- Bignum:
- използвайте GMP # 8796
- String # scrub # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 и RubyGems 2.2.0
- "буквално" .freeze сега е оптимизиран # 9042
- добавете Изключение # причина # 8257
- актуализирайте библиотеките като BigDecimal, JSON, NKF, Rake, RubyGems и RDoc
- премахване на проклятия # 8584
Какво е новото във версия 2.0.0-p0:
- Езикови основни характеристики:
- Аргументи на ключови думи, които дават гъвкавост на дизайна на API
- Модул # prepend, който е нов начин за разширяване на класа
- буквален% i, който лесно създава набор от символи
- __ dir__, който връща името на файла, който се изпълнява в момента
- Кодирането по подразбиране на UTF-8, което прави много магически коментари неразрешени
- Вградени библиотеки:
- Изброим # мързелив и Enumerator :: Lazy, за (възможно безкрайно) мързелив поток
- Размер на брояч и размери #, за мързелив размер на оценката
- #to_h, което е нова конвенция за преобразуване в хеш
- Onigmo, който е нов двигател на regexp (вилица на Oniguruma)
- API за обработка на асинхронни изключения
- Поддръжка на отстраняване на грешки:
- Поддръжка на DTrace, което дава възможност за диагностика при изпълнение на производствения процес
- TracePoint, което е подобрено API за проследяване
- Подобрения на ефективността:
- GC оптимизация чрез растерна маркировка
- Ядрото # изисква оптимизация, което прави стартирането на Rails много бързо
- оптимизация на VM, като например изпращане на метод
- Оптимизиране на платформата
Какво е новото във версия 1.9.3-p392:
- Това издание включва корекции за сигурността на JSON и REXML:
- Уязвимост на Denial of Service и неточно създаване на обекти в JSON (CVE-2013-0269)
- Разширяване на Entity DoS уязвимостта в REXML (XML бомба)
- Включват се и някои малки корекции за грешки.
Какво е новото в версия 1.9.3-p385:
- RDoc.
- RDoc.
- $ SAFE избягва уязвимостта за Изключение # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Неволно създаване на файлове, причинено от вмъкване на незаконен NUL символ
- други много поправки на програмни грешки.
Какво е новото в версия 1.9.3-p286:
Коментари не е намерена