Как пользоваться онлайн-компилятором Ruby
- Напишите или вставьте код Ruby в редактор. Кнопка Сбросить пример возвращает стартовую программу.
- Нажмите Запустить или используйте Ctrl + Enter (⌘ + Enter на Mac).
- Вывод
puts,printиpпоявляется на панели Результат. Исключения и сообщения, записанные в$stderr, выделяются как ошибки. - Выберите ограничение времени в 5, 15 или 60 секунд. Запуск, который длится дольше, останавливается автоматически, а кнопка Остановить завершает его немедленно.
При первом запуске скачиваются среда выполнения Ruby и её стандартная библиотека, около 36 МБ, поэтому при медленном соединении это может занять некоторое время. Браузер кеширует их, и при следующих посещениях всё запускается гораздо быстрее. Сохраните программу кнопкой Копировать или скачав main.rb.
Ruby работает в Web Worker прямо в вашем браузере. Ваш код никогда не загружается и не хранится на наших серверах. Редактор запоминает вашу последнюю программу в локальном хранилище браузера и больше нигде.
Что поддерживается
Компилятор использует Ruby 3.3 через официальную сборку ruby.wasm — интерпретатор CRuby (MRI), скомпилированный в WebAssembly.
- Весь язык Ruby 3.3: классы, модули, примеси (mixins), блоки, proc и lambda, сопоставление с образцом через
case/in, однострочные методы без end (endless methods,def name = ...), именованные аргументы и уточнения (refinements). - Основные классы, такие как
String,Array,Hash,Range,Enumerable,Enumerator,StructиComparable. - Стандартная библиотека:
require "json","set","date","time","securerandom","digest"и другие входящие в комплект библиотеки подключаются как обычно.
Ограничения:
- Нельзя устанавливать гемы. Доступны только библиотеки, которые поставляются вместе с Ruby, а
gem installи Bundler не работают. - Нет доступа к сети и стандартного ввода. Записывайте тестовые данные прямо в скрипт вместо чтения через
gets. - Интерпретатор переиспользуется между запусками. Классы и константы, определённые раньше, остаются и при следующем запуске. Нажмите Остановить, чтобы начать заново с чистым интерпретатором.
Краткий справочник по Ruby
require "json"
Book = Struct.new(:title, :year)
books = [
Book.new("Eloquent Ruby", 2011),
Book.new("Practical Object-Oriented Design", 2012),
]
recent = books.select { |b| b.year >= 2012 }.map(&:title)
puts "Recent: #{recent.join(', ')}"
result = { status: "ok", count: books.size }
case result
in { status: "ok", count: Integer => n }
puts "Found #{n} books"
end
puts books.map(&:to_h).to_json
| Задача | Синтаксис |
|---|---|
| Вывод с переводом строки | puts "Hello" |
| Просмотр значения | p [1, :a, nil] |
| Интерполяция строк | "Total: #{sum}" |
| Перебор с блоком | items.each { |x| puts x } |
| Хеш с ключами-символами | { name: "Ada", age: 36 } |
| Безопасная навигация | user&.email |
Советы
- При отладке используйте
pвместоputs. Он показывает значение в формате inspect, так что можно отличитьnil,""и"nil". - Составляйте цепочки методов
Enumerable, таких какmap,select,group_by,tallyиeach_slice, чтобы преобразовывать данные без ручных циклов. - Если вы видите
warning: already initialized constant, интерпретатор всё ещё помнит предыдущий запуск. Нажмите «Остановить», а затем снова «Запустить». - Проверяйте сгенерированный JSON в форматировании и валидации JSON, а регулярные выражения — в тестере регулярных выражений. Используемый в нём синтаксис JavaScript охватывает большинство повседневных шаблонов Ruby.
Часто задаваемые вопросы
Это настоящий Ruby?
Да. ruby.wasm — это официальный порт CRuby на WebAssembly, который поддерживается в рамках проекта Ruby. Язык и основные классы ведут себя так же, как на вашем компьютере.
Почему первая загрузка медленная?
Интерпретатор и его стандартная библиотека занимают около 36 МБ. Загрузка происходит один раз, а затем файлы отдаются из кеша браузера.
Можно ли использовать гемы вроде Rails или Nokogiri?
Нет. Включена только стандартная библиотека, а гемы в браузере установить нельзя. Этот инструмент лучше всего подходит для изучения Ruby, отработки алгоритмов и проверки фрагментов кода.
Какие ещё языки можно запускать?
Попробуйте онлайн-компилятор Python или компиляторы Lua, PHP, JavaScript, TypeScript и SQL, которые тоже работают в вашем браузере.
Обновлено