Ruby - це мультиплатформне, вільно розподілене програмне забезпечення командного рядка з функціональним та відкритим кодом, яке було розроблено з нуля, щоб забезпечити потужну мову програмування для розробників, які хочуть створювати додатки в Ruby .
Особливості, безліч функцій
Ключові функції включають в себе простий синтаксис, натхненний Адою та Ейфлеєм, незалежними від рішень операційною системою, можливості обробки виключень для обробки помилок, численні оператори, чиста та повна об'єктно-орієнтована мова, а також підтримка додавання методів до класу.
Крім того, Ruby має лише єдине успадкування, справжні закриття, блоки в його синтаксисі, справжній збирач сміття для позначки та сміття, підтримка для написання розширень C, цілих чисел, підтримка для завантаження бібліотек розширень динамічно, і не існує. потрібні перемінні декларації.
Початок роботи з Ruby
Встановлення мови програмування Ruby в операційній системі GNU / Linux - це дуже просте завдання, оскільки пакет доступний для завантаження на всіх основних дистрибутивах безпосередньо з їх основних сховищ програмного забезпечення. Використовуйте вбудовану програму Center Center для встановлення.
Як альтернатива, остання версія може бути встановлена за допомогою вихідного пакета, який безкоштовно розповсюджується на Softoware. Просто завантажте його та збережіть його у своєму домашньому каталозі, витягніть архів та перейдіть до місця вилученого архіву у додатку для емулятора термінала (наприклад, cd /home/softoware/ruby-2.2.0).
Запустіть & lsquo; ./конфігурувати & rsquo; команду для налаштування проекту (можна скористатися командою & lsquo; ./ configure --help & rsquo ;, щоб переглянути доступні параметри для оптимізації Ruby для певної архітектури апаратного забезпечення). Потім запустіть & lsquo; зробити & 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-розрядними комп'ютерними платформами.
Що нового в цьому випуску:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.5.0:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.4.2:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.4.1:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.4.0:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.3.3:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.3.1:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.3.0:
- Запроваджена букварна прагма "Заморожені рядки". У Ruby 2.1 оптимізовано "str" quot ;, щоб зменшити розподіл об'єктів. Ruby 2.3 представляє новий магічний коментар і опцію командного рядка, щоб заморозити всі строкові літерали в вихідних файлах. Крім того, для налагодження ви можете отримати місце, де об'єкт створено, & quot; не може змінити застиглий рядок & quot; помилка за допомогою параметра командного рядка --debug = frozen-string-literal.
- Введено безпечний навігаційний оператор (так званий одинокий оператор) &., який вже існує в C #, Groovy та Swift, щоб полегшити обробку в нулі як obj & .foo. Також додано масив # копати і виконувати копання #. Зауважте, що це веде себе як спроба! активної підтримки, яка спеціально обробляє лише нуль.
- Дорогоцінний камінь did_you_mean поставляється в комплекті. Перлини did_you_mean показують кандидатів на NameError і NoMethodError, щоб полегшити налагодження.
- RubyVM :: InstructionSequence # to_binary і .load_from_binary вводяться як експериментальна функція. За допомогою цих функцій ми можемо створити систему попередньої компіляції ISeq (байт-код).
- Вона також включає в себе багато покращень продуктивності, наприклад, переглянути структуру даних для введення методу, вводити нову структуру даних таблиці, оптимізувати виклик Proc #, налаштувати рівень машинного коду для розподілу об'єктів та виклику коду методу, Сокет і введення-виведення дозволяють використовувати "виняток:" ключові слова для високоефективних неблокуючих входів / виходів і так далі.
Що нового у версії 2.2.3:
- Цей випуск містить захист для домену RubyGems перевірка імені вразливості CVE-2015-3900 Запишіть вразливість у виправленні в RubyGems 2.4.6 і раніше
Що нового у версії 2.2.2:
- Цей випуск містить захист для розширення OpenSSL Вміння перевірки імені хоста.
Що нового у версії 2.2.0:
- VM (кеш-пам'ять методу)
- RGenGC (див. презентацію RubiKaigi ko1 і презентацію RubyConf 2013)
- уточнення # 8481 # 8571
- зміни синтаксису:
- Десятковий / Комплексний літературний № 8430
- повернення значення def # 3753
- Bignum:
- використовуйте GMP # 8796
- Стрижка # # 8414
- Socket.getifaddrs # 8368
- RDoc 4.1.0 і RubyGems 2.2.0
- "Літеральний" & "frozen" тепер оптимізовано # 9042
- додайте виняток # cause # 8257
- оновлюйте бібліотеки, такі як BigDecimal, JSON, NKF, Rake, RubyGems і RDoc
- видалити прокляття # 8584
Що нового у версії 2.0.0-p0:
- Основні функції мови:
- Аргументи ключових слів, які надають гнучкість у дизайні API
- Модуль # prepend, який є новим способом розширення класу
- Буквальний% i, який легко створює масив символів
- __ dir__, який повертає dirname файлу, який зараз виконується
- Кодування за замовчуванням UTF-8, що робить багато магічних коментарів недоступними
- Вбудовані бібліотеки:
- Enumerable # лінь і Enumerator :: Lazy, для (можливо, нескінченного) ледачого потоку
- Розмір номеру № # # і діапазон #, для оцінки ненатудного розміру
- #to_h, що є новою конвенцією для перетворення в Hash
- Onigmo, це новий движок регулярного виразу (вилка Oniguruma)
- Асинхронний API обробки виключень
- Підтримка налагодження:
- Підтримка DTrace, яка дозволяє в режимі реального часу діагностувати виробництво
- TracePoint - це вдосконалений API для трасування
- Покращення продуктивності:
- Оптимізація GC шляхом маркування растрового зображення
- Керне # вимагає оптимізації, що робить запуск Rails дуже швидким
- Оптимізація віртуальної машини, така як метод відправлення
- Оптимізація операцій з плаваючою операцією
Що нового у версії 1.9.3-p392:
- У цьому випуску містяться виправлення безпеки, що стосуються комплектації JSON і REXML:
- Відмова в обслуговуванні та вразливість в небезпечному створенні об'єктів в JSON (CVE-2013-0269)
- Вплив DoS розширення Entity в REXML (XML-бомба)
- Також включені деякі невеликі виправлення помилок.
Що нового в версії 1.9.3-p385:
- Цей випуск містить виправлення безпеки, RDoc.
Що нового у версії 1.9.3-p384:
- Цей випуск містить виправлення безпеки, RDoc.
Що нового у версії 1.9.3-p286:
- $ SAFE в'язкість щодо винятку # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Ненавмисне створення файлів, викликане введенням незаконного символу NUL
- Інші численні виправлення помилок.
Коментар не знайдено