Ruby/Начало работы
От читателя требуется общее знание компьютеров, включая навыки работы с файловой системой и текстовыми файлами. Прежде чем начать программировать на Ruby, нужно установить интерпретатор и обустроить для себя удобную среду для создания программ. Для испытания кода из учебника можно воспользоваться сетевым интерактивным интерпретатором.
Об установке и настройке рабочей среды Ruby читайте приложение → Установка .
Программы на языке Ruby это текстовые файлы, не подлежащие компиляции. Для их исполнения нужен интерпретатор, который мы уже установили. Чтобы запустить программу на Ruby, необходимо вызвать интерпретатор и передать ему имя файла с программой в качестве параметра.
Чтобы запустить программу с именем Test_program.rb (программы на Ruby обычно имеют расширение .rb ), в UNIX нужно вызвать консоль и набрать:
ruby Test_program.rb
Чтобы запустить программу из Windows нужно дважды кликнуть на файл с программой. Чтобы окно не исчезало и были видны результаты надо перед местами выхода из программы поставить команду ожидания ввода
STDIN.getc
Именам программ в Windows принято давать расширение .rbw , что позволяет использовать Windows-версию интерпретатора rubyw , который надоедающее окошко просто не вызывает. Интерпретатор ruby предназначен для работы в консоли. Для интерпретатора rubyw вставлять код STDIN.getc перед местами выхода бесполезно.
Первая программа править
Откройте редактор и напишите программу. По традиции первая программа должна просто выводить приветствие миру:
puts "Hello, World!"
Сохраните её в файл helloworld.rb и запустите. На экране будет красоваться надпись:
Hello, World!
На этом традиционную часть можно считать выполненной.
Полигон для испытания программ править
Чтобы посмотреть результат выполнения большинства примеров из учебника, не обязательно создавать файл. Достаточно использовать полигон для испытания программ на Ruby irb , который входит во все дистрибутивы и сам написан на Ruby. Запускается он командой
Полигон — это рубиговорящая командная строка. Она показывает вам результат выполнения каждой строки кода:
irb(main):001:0> [1, 2, 3, 4] =>[1, 2, 3, 4]
Поскольку любая функция в Ruby может быть переопределена в любой момент, важнейшая часть написания большинства небольших программ — это именно эксперименты на полигоне. Посмотрим, например, какие есть методы у обычной строки:
irb(main):002:0> "text".methods =>["methods", "instance_eval", "%", "rindex", "map", "irb(main):003:0> 14 * 5 =>70Для выхода с полигона — набрать exit .
По причине того, что интерактивный терминал (полигон) поддерживает автозаполнение при введении табуляции, исходные тексты программ на Ruby принято «отбивать» пробелами (чтобы текст программы можно было просто скопировать в терминал и увидеть, как он работает). Если в irb скопировать программу, «отбитую» табуляциями, интерактивный терминал будет прерывать каждую строчку ввода чтобы предложить варианты автозаполнения.
fxri: полигон и справочник править
Внешний вид программы fxri
В последних версиях дистрибутива «Установка за один щелчок» для Windows появилась утилита fxri . Это кроссплатформенное графическое приложение, вобравшее в себя функционал ri и irb . Буковки fx в начале означают использование библиотеки FXRuby. Последние две буквы ri означают Ruby Informer (Информатор о классах и методах в языке Ruby).
У fxri три окна: в левом перечислены все методы c описаниями. Верхнее правое окно рассказывает о выбранном методе. Нижнее правое окно реализует программу irb , описанную выше.
ruby browser править
Внешний вид Ruby Browser
Если вы работаете на Linux, вероятно в репозитории вашего дистрибутива найдется Ruby Browser. Приложение позволяет просматривать встроенную документацию на классы и модули Ruby. Та же документация доступна через консольную команду ri .
Комментарии и демонстрация результата править
Комментарием называется часть программного кода, пропускаемая при обработке (интерпретации или компиляции).
В Ruby знаком начала комментария служит # . Всё, что между ним и концом строки, пропускается. Пример:
puts 2 + 2 # это комментарий puts "Привет!" # тоже комментарийМногострочные комментарии помещаются между словами =begin и =end
=begin Это длинный комментарий Очень длинный =end puts "Привет!"Результат иллюстрируемого кода будет располагаться после последовательности #=> . Пример:
puts 2 + 2 #=> 4 puts "Привет" #=> ПриветВывод на экран править
В Ruby есть много методов вывода: print , printf , p , puts , .display и другие. Но мы использовать будем два:
- метод puts . После вывода строки осуществляет переход на новую. Если приходится выводить объект, не являющийся строкой, то puts вызывает метод .to_s для преобразования его к строке;
- метод p . Имеет самое короткое название, из-за чего часто используется для отладки. Так же, как и puts , делает перевод на новую строку после вывода. Перед выводом любого объекта (в том числе и строки) на экран, вызывает метод .inspect .
Примеры вывода на экран:
puts [1, 2, 3, 4] #=> 1\n2\n3\n4 # \n означает перевод строки p [1, 2, 3, 4] #=> [1, 2, 3, 4] puts "Hello!" #=> Hello! p "Hello!" #=> "Hello!" puts 5 #=> 5 p 5 #=> 5
Как видно из примера, результаты во время вывода строк и массивов существенно различаются. Если вас не смущают кавычки в результате вывода, то смело используйте p , если смущают, то puts .
Иногда возникает ситуация, когда при попытке вывода на экран русскоязычной строки при помощи метода p выводится непонятный код вида
"\323\367\350\362\345 \320\363\341\350!"
Чтобы избежать таких ситуаций следует поместить в начало программы следующий программный код:
$KCODE = "u"
Кодировка UTF-8 используется в SciTE. При использовании других редакторов, может потребоваться смена кодировки на соответствующую (зависит от редактора и операционной системы)
(Для версии ruby1.9.1. вместо
$KCODE="u"
используется "умный комментарий":
# coding: utf-8
который следует добавить в начало программы - прим. Sharipov.ru)
Последний раз редактировалась 16 апреля 2020 в 15:53
Языки
Эта страница недоступна на других языках.
- Эта страница в последний раз была отредактирована 16 апреля 2020 в 15:53.
- Если не указано иное, содержание доступно по лицензии CC BY-SA 4.0.
- Политика конфиденциальности
- Описание Викиучебника
- Отказ от ответственности
- Кодекс поведения
- Разработчики
- Статистика
- Заявление о куки
- Условия использования
- Настольная версия
Ruby за двадцать минут
Здесь представлено небольшое введение в Ruby, которое должно занять не более двадцати минут. Предполагается, что вы уже установили Ruby. (Если на вашем компьютере нет Ruby, скачайте и установите его перед тем как начать.)
Интерактивный Ruby
Ruby устанавливается вместе с программой, которая покажет результат любого Ruby кода, который вы напишете в ней. Играть с кодом Ruby интерактивно – отличный способ узнать язык.
Откройте IRB (сокращение для Interactive Ruby).
- Если вы используете macOS, откройте Terminal , наберите irb и нажмите Enter.
- Если вы используете Linux, откройте shell , наберите irb и нажмите Enter.
- Если вы используете Windows, откройте Interactive Ruby из секции Ruby вашего меню Пуск.
irb(main):001:0>
Окей, итак он запущен. Что дальше?
Наберите это: "Hello World"
irb(main):001:0> "Hello World" => "Hello World"
Ruby повиновался вам!
Что только что произошло? Неужели мы только что написали кратчайшую в мире программу “Hello World”? Не совсем. Вторая строка, это всего-лишь способ IRB показать нам результат последнего выполненного выражения. Если мы хотим напечатать “Hello World”, мы должны написать немного больше:
irb(main):002:0> puts "Hello World" Hello World => nil
puts – основная команда в Ruby, позволяющая напечатать что-нибудь. Но что же такое тогда => nil ? Это результат выполнения выражения. puts всегда возвращает nil, который в Ruby обозначает значение абсолютно-положительного ничего.
Ваш бесплатный калькулятор
Теперь мы знаем достаточно, чтобы использовать IRB как простейший калькулятор:
irb(main):003:0> 3+2 => 5
Три плюс два. Достаточно просто. Что насчет три умножить на два? Вы можете набрать сами, это достаточно короткий код, но также вы можете вернуться выше и изменить то, что вы ввели ранее. Попробуйте нажать стрелку наверх на клавиатуре и вы увидите строку с 3+2 . Если это так - вы можете использовать стрелку влево, чтобы переместить курсор прямо за + , нажать backspace и поменять его на * .
irb(main):004:0> 3*2 => 6
Теперь давайте попробуем возвести три в квадрат:
irb(main):005:0> 3**2 => 9
В руби ** – способ возвести число в степень. Но что если вы хотите пойти в обратном направлении и узнать квадратный корень от чего-либо?
irb(main):006:0> Math.sqrt(9) => 3.0
Окей, погодите, что это было? Если вы думаете “это был способ выяснить квадратный корень из девяти”, вы правы. Но давайте приглядимся к деталям. Во-первых, что такое Math ?
Модули группируют код по темам
Math – это встроенный модуль для математических операций. Модули выполняют две роли в Ruby. Наш пример показывает первую роль: сгруппировать похожие методы вместе под знакомым именем. Math также содержит методы типа sin() и tan() .
Следующее – это точка. Что делает точка? Точка – это то, как вы указываете получателя сообщения. Что такое сообщение? В данном случае это sqrt(9) , которое означает вызов метода sqrt , сокращение от “square root” (квадратный корень), с параметром 9 .
Результат от вызова этого метода – 3.0 . Вы можете заметить, что это не просто 3 . Это потому, что большинство значений квадратного корня от числа не являются целыми, так что метод всегда возвращает число с плавающей точкой.
Что если мы хотим запомнить результат какой-либо математической операции? Присвойте это значение переменной.
irb(main):007:0> a = 3 ** 2 => 9 irb(main):008:0> b = 4 ** 2 => 16 irb(main):009:0> Math.sqrt(a+b) => 5.0
Калькулятор это замечательно, но мы отошли от традиционного сообщения Hello World , которым начали наше введение и на котором мы должны были сфокусироваться… так что давайте вернемся к нему.
Начните сейчас, это легко!
- Попробуйте Ruby! (в своем браузере)
- Ruby за двадцать минут
- В Ruby из других языков
Исследуйте новый мир…
- Документация
- Научные публикации
- Библиотеки
- Истории успеха
Вступайте в дружелюбное и развивающееся сообщество.
- Почтовые рассылки: Разговоры о Ruby в кругу программистов со всего мира.
- Группы пользователей: Познакомьтесь с рубистами рядом с вами.
- Блоги: Читайте о том, что происходит в сообществе Ruby прямо сейчас.
- Ядро Ruby: Помощь в полировке последней версии Ruby.
- Решение проблем: Сообщайте или помогайте решать проблемы в Ruby.
Установка и настройка Ruby
Правильное программирование начинается с установки необходимых инструментов.
«Методов вагон и маленькая тележка, а вот принципов совсем немного. Тому, кто усвоил принципы, ничего не стоит выбрать тот или иной метод. А вот тому, кто ищет метод, не обращая внимания на принципы, придется туго.»
— Ральф Эмерсон, поэт и эссеист
Как устроена программа
Программа это набор инструкций для компьютера, написанный человеком.
Чтобы написать программу нужен человек, который будет писать и текстовый редактор, в котором писать текст.
Для того, чтобы компьютер понял текст, написанный человеком, нужен специальный инструмент компилятор или интерпретатор. Интерпретатор «переводит» текст, понятный человеку, в код, понятный компьютеру.
Это такая своеобразная «мясорубка», которая, как и человек, понимает какой-то язык программирования и переводит инструкции этого языка в язык компьютерных команд.

В нашем курсе мы будем использовать в качестве такого интерпретатора Ruby.
После того, как программа преобразована в инструкции компьютера, компьютер может их выполнять и отображать какой-то результат.

Так устроена по сути любая современная технология, любой современный язык. Пройдем по шагам эту цепочку на примере языка Ruby и заодно установим все нужные инструменты.
Текстовый редактор Sublime
Нам нужен способ писать программы. Для удобства существуют специальные редакторы, они помогают и подсказывают программисту в процессе написания программ. Мы скачиваем и устанавливаем один из таких редакторов — Sublime.
Скачайте подходящую для вашей системы версию на официальном сайте и установите как обычную программу.

Можете воспринимать его как блокнот или даже как редактор Word. Но в отличие от этих двух, он умеет раскрашивать текст на языке Ruby так, что становится очень наглядно и удобно писать программы.
Далее мы еще будем касаться некоторых особенностей его работы. Но помните, что по сути своей это просто текстовый редактор.
Рабочая папка для уроков
Для хранения всех программ этого курса мы рекомендуем вам создать новую папку rubytut в корне вашего диска (или в домашней директории на Mac OS X) — подробнее смотри видеоурок.
В созданной папке создайте папку нашего первого урока lesson2 В эту папку Мы положим нашу первую программу hello.rb . Обратите внимание на расширение .rb — все файлы на языке Ruby имеют расширение .rb
puts "Привет, смешной мир!"
Вот так и выглядит наша первая, самая простая программа на Ruby. Создайте файл с таким содержимым в редакторе Sublime и сохраните в папке этого урока lesson2 , назвав hello.rb .
Сохранение файлов в кодировке UTF-8
Небольшое замечание. Крайне важно, чтобы все файлы, которые вы будете делать при прохождении этого курса, были в кодировке UTF-8. Не будем сейчас подробного на этом останавливаться, просто всегда сохраняйте ваши документы первый раз вот таким способом:
File → Save with Encoding → UTF-8
или, если у вас русская версия
Файл → Сохранить в кодировке → UTF-8
и уже только потом выбирайте название для нового файла.
Итак, текст нашей программы сохранён в файле hello.rb в нужной кодировке. Теперь нам осталось только ее запустить. А для этого нам не хватает самого языка Ruby!
Как установить Ruby
Установим, наконец, наш Ruby!
Пользователи Mac OS X могут пропустить этап установки Ruby, поскольку он уже установлен в систему. Переходите сразу к следующему параграфу.
Для Windows есть специальная версия руби — rubyinstaller, скачайте с официального сайта свежую версию, подходящую под вашу систему (32 или 64 бита).
После этого запускаем его, нажимаем все нужные кнопки как при установке любой программы и ждем, пока установка закончится.
ВАЖНО! Отметьте две галочки на одном из шагов установки как на этой картинке:

Итак, руби установлен. А как же теперь сказать ему, чтобы он запустил нашу первую программу hello.rb ?
Для этого воспользуемся еще одним полезным инструментом — консолью.
Как запускать программы с помощью консоли
Консоль или командная строка (или терминал в Mac OS X) — это специальная программа, которая позволяет в специальном окне с текстовым интерфейсом делать различные операции: создавать, перемещать файлы и папки, запускать и останавливать программы, вводить и выводить информацию в компьютер.
Другими словами, консоль — это как обычная операционная система, только без окошек, без графики, без рюшечек. Все операции нужно писать текстом в специальном окне.
Это самый важный и популярный для программиста инструмент. В этом курсе почти все наши программы мы будем запускать и использовать с помощью консоли.
Вы на собственном примере убедитесь далее, что даже в текстовом интерфейсе можно сделать много полезных, увлекательных и даже красивых игр и программ.
Откроем консоль. Для этого вызываем поиск по программам: клавиша Пуск и начинаем набирать, или Ctrl+Пробел в Mac OS X для вызова Spotlight. В этой строке поиска наберите «Командная строка» или «command line» («terminal» в Mac OS X).



Видите простое окно с каким-то текстом на черном или белом фоне? Это и есть наша консоль.

Советую закрепить ее в панели задач (в Доке на Маке) — правой кнопкой мыши по значку запущенной программы и выбрать пункт меню что-то про «закрепить» в панели задач или в Доке. Тогда в следующий раз вы сможете запустить ее прямо из панели задач, не нужно будет опять искать эту программу.
В консоли напишите ruby -v и нажмите Enter и посмотрите что произойдет
ruby -v
Этим мы сказали консоли: «запусти команду ruby и передай ей параметр -v », а когда руби запустился, он прочитал этот параметр, означающий: «выведи свою версию и закройся».
Если вы правильно установили Ruby, то в консоли выведется информация об установленной версии.

Таким способом и происходит запуск программ и отображение результатов в консоли.
Другая важная идея: консоль всегда находится в какой-то папке (в этом смысле она похожа на программу Проводник), в Windows текущая папка написана слева от курсора — это полный путь к папке.
В Mac OS X чтобы узнать полный путь текущей папки, надо в консоли набрать команду pwd и нажать Enter.
Текущая папка важна для запуска программ. Чтобы перейти в другую папку в консоли есть встроенная команда cd .
Для того, чтобы перейти в нашу рабочую папку, нужно в консоли написать:
cd c:\rubytut\lesson2
Вместо c:\rubytut\lesson2 вы должны указать полный путь к папке 2-го урока, которую вы создали ранее. Если он у вас отличается от нашего.
Подробнее о работе в консоли в Windows и Mac OS X смотрите видео 2-го урока и дополнительные ссылки.
Первая программа Hello World на Ruby
Запускаем нашу новую программу hello.rb
Теперь когда вы находитесь в той же папке, где у вас лежит файл hello.rb , наберите в консоли команду ruby и через пробел имя этого файла, нажмите Enter.
ruby hello.rb
Эта команда говорит консоли: «Запусти Ruby и скажи ему, что нужно выполнить файл hello.rb из текущей папки.» В ответ на это запускается программа Ruby и отвечает: «Так, вижу файл, выполняю.» После выполнения программы Руби закрывается.
Если при установке руби была ошибка, то консоль ругнется и скажет, что она не знает такой команды ruby .
Если же вы не перешли в правильную папку или в ней нету файла hello.rb , то ругаться будет уже Руби. Он сообщит в консоли что-то вроде: «не вижу такого файла, нечего выполнять».
Конечно все сообщения об ошибках будут на английском языке, но их не нужно дословно понимать.
Если же вы всё сделали правильно, программа радостно с вами поздоровается:
Привет, смешной мир!
В следующем уроке мы расскажем подробнее как разбираться с наиболее типичными ошибками, не вдаваясь глубоко в детали.
Поздравляем! В этом уроке вы установили Sublime и Ruby, создали папку для уроков c:\rubytut и написали первую самую простую программу hello.rb .
В следующем уроке мы напишем программу посложнее — «волшебный шар». А также расскажем, зачем в коде программ нужны комментарии и отступы и научим находить и исправлять типичные ошибки в программах.
Установка Ruby — Ruby: Настройка окружения
Начнем с установки Ruby и знакомства с REPL.
Если на вашем компьютере пока не стоит Ruby, то выполните установку по нашей инструкции . После установки перезагрузите компьютер.
Теперь убедимся в том, что Ruby установился и работает. Откройте терминал и наберите в нем следующую команду:
# Ваша версия может отличаться ruby -v ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-darwin21]
Интерактивный запуск кода
Если все прошло удачно, можно запустить код на Ruby через REPL.
REPL (Read Eval Print Loop) — это программа, которая работает как командная оболочка. Она:
- Ожидает ввод от пользователя (Read)
- Выполняет введенный код (Eval)
- Печатает на экран результат (Print)
- Затем снова входит в режим ожидания (Loop)
Чтобы запустить REPL, наберите в терминале команду irb :
# IRB расшифровывается как Interactive RuBy irb irb(main):001:0>
> 1 + 5 6 > 7 % 2 1
Такой способ помогает быстро проверять гипотезы, отлаживать код и делать простые вычисления.
REPL позволяет использовать переменные и запоминает предыдущий ввод:
> a = 5 5 > b = 10 10 > a + b 15
Чтобы выйти из REPL, воспользуйтесь одним из двух вариантов:
- Наберите exit и нажмите Enter
- Нажмите CTRL + D
Запуск кода из файлов
Для полноценной разработки REPL уже не подходит — в нем становится неудобно. Поэтому на практике разработчики записывают код в обычные текстовые файлы на своем компьютере.
Какой редактор для этого использовать? Сейчас самым распространенным и удобным редактором для кода считается VS Code . Скачайте его, установите и поизучайте интерфейс. У него много встроенных возможностей, которые расширяются плагинами.
Откройте редактор, создайте в нем файл с именем index.rb и следующим содержимым:
puts 'Hello, Hexlet!';
VS Code имеет встроенные механизмы, которые запускают код автоматически. Но пока вы только учитесь, поэтому стоит научиться запускать код вручную.
Для этого откройте терминал в той директории, где вы создали файл в редакторе. В терминале выполните такую команду:
# Сначала перейдите в директорию с файлом index.rb
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
