Ruby - это многоплатформенное свободно распространяемое многофункциональное программное обеспечение с открытым исходным кодом, разработанное с нуля, чтобы обеспечить мощный язык программирования для разработчиков, которые хотят создать приложение в Ruby .
Особенности, множество функций
Ключевые особенности включают простой синтаксис, вдохновленный Ada и Eiffel, независимость от операционной системы, возможности обработки исключений для обработки ошибок, многочисленные операторы, чистый и полный объектно-ориентированный язык, а также поддержка добавления методов в класс.
Кроме того, Ruby имеет единственное наследование только, истинное закрытие, блоки в своем синтаксисе, истинный сборщик мусора и разметки, поддержку для написания расширений C, целые числа, поддержку для динамической загрузки библиотек расширений, и это doesn & rsquo; t нужны объявления переменных.
Начало работы с Ruby
Установка языка программирования Ruby в операционной системе GNU / Linux является очень простой задачей, поскольку пакет доступен для загрузки во всех основных дистрибутивах непосредственно из их основных хранилищ программного обеспечения. Используйте встроенное приложение Software Center для его установки.
В качестве альтернативы, последняя версия может быть установлена с использованием исходного пакета, который бесплатно распространяется на Softoware. Просто загрузите его и сохраните в своем домашнем каталоге, извлеките архив и перейдите к местоположению извлеченных архивных файлов в приложении эмулятора терминала (например, cd /home/softoware/ruby-2.2.0).
Запустите & lsquo; ./ configure & rsquo; команды для настройки проекта (вы можете использовать команду & lsquo; ./ configure --help & rsquo; для просмотра доступных опций для оптимизации Ruby для конкретной аппаратной архитектуры). Затем запустите & lsquo; make & rsquo; команда для ее компиляции и & sdo 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-разрядными компьютерными платформами.
Что нового в этой версии:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.5.0:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.4.2:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.4.1:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.4.0:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.3.3:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.3.1:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.3.0:
- Вводится липкая строка String Literal Pragma. С Ruby 2.1 оптимизация «str» была оптимизирована для уменьшения распределения объектов. Ruby 2.3 вводит новый параметр магии и командной строки, чтобы заморозить все строковые литералы в исходных файлах. Кроме того, для отладки вы можете получить, где объект создан на "не может изменить замороженную строку" ошибка с помощью опции командной строки --debug = frozen-string-literal.
- Для упрощения обработки nil в качестве obj & .foo введен безопасный навигационный оператор (так называемый одиночный оператор) &., который уже существует в C #, Groovy и Swift. Также добавляются массивы # dig и Hash # dig. Обратите внимание, что это ведет себя как попытка! Active Support, которые специально обрабатывают только нуль.
- Драгоценный камень did_you_mean в комплекте. Драгоценный камень did_you_mean показывает кандидатов в NameError и NoMethodError для облегчения отладки.
- RubyVM :: InstructionSequence # to_binary и .load_from_binary вводятся как экспериментальная функция. С помощью этих функций мы можем создать систему предварительной компиляции ISeq (байт-код).
- Он также включает в себя многие улучшения производительности, например, структуру данных ввода-вывода для переосмысления, введение новой структуры данных таблицы, оптимизацию вызова Proc #, настройку уровня машинного кода для распределения объектов и кода вызова метода, более интеллектуальную структуру данных переменных экземпляра, Сокет и ввод-вывод позволяют использовать исключение: & quot; ключевые слова для высокопроизводительных неблокирующих операций ввода-вывода и т. д.
Что нового в версии 2.2.3:
- Этот выпуск содержит исправление безопасности для домена RubyGems уязвимость проверки имен. CVE-2015-3900 Запросить уязвимость захвата в RubyGems 2.4.6 и более ранних версиях
Что нового в версии 2.2.2:
- Этот выпуск содержит исправление безопасности для расширения OpenSSL уязвимость проверки имени узла.
Что нового в версии 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
- "literal" .Freeze теперь оптимизирован # 9042
- добавить исключение # причина # 8257
- библиотеки обновлений, такие как BigDecimal, JSON, NKF, Rake, RubyGems и RDoc.
- удалить проклятия # 8584
Что нового в версии 2.0.0-p0:
- Основные возможности ядра:
- Аргументы ключевого слова, которые придают гибкость дизайну API
- Модуль # prepend, который является новым способом расширения класса
- Литеральный% i, который легко создает массив символов.
- __ dir__, который возвращает имя исполняемого файла
- Кодировка по умолчанию UTF-8, которая делает допустимыми многие магические комментарии
- Встроенные библиотеки:
- Перечислимый # lazy и Enumerator :: Lazy, для (возможно бесконечного) ленивого потока
- Размер перечислителя # и размер диапазона # для оценки ленивого размера
- #to_h, который является новым соглашением для преобразования в Hash
- Onigmo, который является новым движком regexp (вилка Oniguruma)
- API обработки асинхронных исключений
- Поддержка отладки:
- Поддержка DTrace, которая позволяет проводить диагностику во время производства
- TracePoint, который является улучшенным API трассировки
- Улучшения производительности:
- Оптимизация GC с помощью растровой маркировки
- Ядро # требует оптимизации, что делает запуск Rails очень быстрым
- Оптимизация VM, такая как отправка метода
- Оптимизация работы с плавающей точкой
Что нового в версии 1.9.3-p392:
- В этом выпуске содержатся исправления безопасности о связанных JSON и REXML:
- Уязвимость Denial of Service и Unsafe Object Creation в JSON (CVE-2013-0269)
- Расширение сущности DoS-уязвимости в REXML (XML-бомба)
- И некоторые небольшие исправления также включены.
Что нового в версии 1.9.3-p385:
- Этот выпуск содержит исправление безопасности в комплекте RDoc.
Что нового в версии 1.9.3-p384:
- Этот выпуск содержит исправление безопасности в комплекте RDoc.
Что нового в версии 1.9.3-p286:
- $ БЕЗОПАСНОЕ устранение уязвимости об исключении # to_s / NameError # to_s (CVE-2012-4464, CVE-2012-4466)
- Непреднамеренное создание файла, вызванное введением незаконного символа NUL
- другие исправления ошибок.
Комментарии не найдены