Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ruby / Быстрый курс Ruby.doc
Скачиваний:
113
Добавлен:
06.06.2015
Размер:
147.46 Кб
Скачать

Особенности Ruby

Язык Ruby был задуман японским программистом Yukihiro Matsumoto в 1993 году как результат синтеза всех лучших черт языков программирования с целью максимально упростить создание программ. Результат синтеза в идеях языка изложен в документации по Ruby. Ниже представлены наиболее важные из них:

  • Это интерпретируемый язык. В простейшем случае это означает, что стадия компиляции для него отсутствует. Это сокращает время, необходимое для создания программы.

  • В Ruby переменная может хранить любой объект - можно сказать, что Ruby безтиповый язык, как PHP или Perl.

  • Определять переменные не нужно. Для задания области видимости переменной используются приставки. Например $myVar - это глобальная переменная, а myVar - локальная.

  • Garbage Collector освобождает от управления памятью. Объекты, на которыре не существует ссылок, автоматически выгружаются из памяти.

  • Примитивные типы отсутствуют - любое значение является объектом.

  • Поддержка основных концепций ООП.

  • Чрезвычайно гибкая система итераторов.

  • Части кода представлены как объекты

  • Поддержка регулярных выражений и сходные с Perl методы работы с ними.

  • В Ruby нет разделения на Integer, Long, Byte. Для целочисленных типов есть только один тип, в рамках которого можно проводить вычисления с произвольным количеством разрядов.

  • Механизмы перехвата исключений (как в Java).

Другие особенности, которые мне особо понравились:

  • Поддержка потоков

  • Все операторы возвращают значения, в том числе управляющие структуры (if, case)

  • return в конце функции не обязателен, возвращается значение последнего оператора. Например:

  • def myFunction(a, b)

  • a + b

  • end

  • puts myFunction(1, 2)

напечатает 3.

  • Условия and и or возвращают элемент, эквивалентный true или первый элемент Например:

  • puts 5 or 10 > 5

  • puts 10 or nil > 10

  • puts nil or 7 > 7

  • puts nil and 10 > nil

Внимание программистам на C и производных: пустая строка и ноль не расцениваются как false. false - это только nil (null).

Установка Ruby Gentoo Linux

Если у вас Gentoo Linux, то Ruby уже, скорее всего, будет установлен. Если же нет, то это досадное недоразумение исправляется очень легко.

$ emerge ruby

Далее можно переходить к установке дополнительных модулей или к первым программам на Ruby.

Установка дополнительных пакетов

Для Ruby есть большое количество различных библиотек и расширений. Доступные в Gentoo Linux можно посмотреть с помощью

$ emerge -s ruby

Кстати, если вы регулярно обновляете Portage, то, возможно, mod_ruby можно уже установить через "emerge mod_ruby". В моей версии его статус еще Masked.

mod_ruby

modruby.net - сайт Apache модуля mod_ruby. Установка крайне проста:

$ tar -xzf mod_ruby-1.0.7.tar.gz

$ cd mod_ruby-1.0.7

$ ./configure.rb --with-apxs=/path/to/apxs

$ make

$ make install

Затем редактируем файл настроек apache (httpd.conf или apache.conf) и добавляем в него следующее:

# загрузка модуля mod_ruby

LoadModule ruby_module /usr/lib/apache/mod_ruby.so

AddModule mod_ruby.c

# Настройка обработчиков для файлов *.rbx

<IfModule mod_ruby.c>

RubyRequire apache/ruby-run

<Location /ruby>

SetHandler ruby-object

RubyHandler Apache::RubyRun.instance

Options +ExecCGI

</Location>

<Files *.rbx>

SetHandler ruby-object

RubyHandler Apache::RubyRun.instance

Options +ExecCGI

</Files>

</IfModule>

Примечание: это немного расходится с примером, указанным в документации, но именно так у меня получилось запустить Ruby скрипты.

Для тестирования создайте в директории public_html файл hello.rbx вида

puts "Hello!"

Обращаемся к нему по ссылке (у вас может быть другая ссылка) "http://localhost/~alex/hello.rbx". Если отработало, значит все получилось. Если нет, обращайтесь, поможем, чем сможем.

Установка книги "Programming Ruby: The Pragmatic Programmers' Guide"

Авторы: Dave Thomas и Andrew Hunt

$ emerge dev-ruby/programming-ruby

Примечание: новая редакция книги находится на сайте phrogz.net

MySQL расширение для Ruby

$ emerge dev-ruby/mysql-ruby

Соседние файлы в папке Ruby