Вопрос

В мире Python существует множество альтернативных интерпретаторов python, которые добавляют интересные дополнительные функции.Одним из особенно полезных примеров является bpython, который добавляет динамическую подсветку синтаксиса, автоматически извлекает документацию и отображает информацию о автозаполнении в реальном времени.В мире Ruby мне еще предстоит обнаружить какие-либо проекты, которые добавляют к базовому интерпретатору IRB хотя бы подмножество этих функций.Я просто недостаточно внимательно смотрю, или это просто то, чего не хватает сообществу Ruby?

Это было полезно?

Решение

Какое совпадение. Rubyflow Просто вчера объявил irbtools GEM, который представляет собой мета-драгоценный камень, содержащий множество крутых усовершенствованных драгоценных камней IRB. Это содержит:

  • Раскрашены и вывод как комментарий wirb и fancy_irb
  • Хорошая подсказка IRB и автомагистрация IRB
  • Включает FileTils STDLIB: ls, cd, pwd, ln_s, rm, mkdir, touch, cat
  • Многие благодаря отладке помощников: ap, q, o, c, y, Object#m, Object#d
    • ap - Awesome_Print.
    • q - нравится p, но на одной линии
    • Object#m - Заказанный список методов (принимает целочисленный параметр: уровень вложенности)
    • Object#d - помещает объект, возвращает себя (используя tap)
  • «Волшебные» информационные константы: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • Особенности буфера обмена: copy и paste
    • также доступны: copy_input и copy_output Для истории сессии
  • Вызов vim (или другой поддерживаемый редактор) для редактирования файла, закройте его, и он загружается в ваш текущий сеанс IRB, питается от interactive_editor
  • Еще один способ вживую загрузку в IRB: эскизы
  • Выделите строку с olorize('string') или файл с ray('path'), питание от CodeRay
  • Отображает записи базы данных ActiveRecord в качестве таблиц с hirb
  • Начать сначала irb с reset! или изменить версию Ruby с use метод и rvm!
  • Включает в себя текущий каталог в пути нагрузки (был удален в 1.9.2 по соображениям безопасности, но довольно раздражает в IRB)
  • Короче, требующее, как это: rq:mathn
  • И повторно rrq
  • Попробуйте включить Object#ri помощник, включенный ori!
  • Доступ к большому количеству команд с boson - Вызовите команды, чтобы начать

Есть хорошие скриншоты на irbtools страница. Одна приятная вещь в этом заключается в том, что каждый из утилит может стоять самостоятельно, если вы просто хотите выбирать одну или две функции.

2013 Обновление

Так как я написал это, Преследовать стал популярным заменой IRB. Это не так много, как irbtools Из коробки, но это расширяется с помощью плагинов драгоценных камней, которые добавляют классные функции. Вы можете просматривать исходный код, как будто это был каталог Unix:

pry(main)> cd FileUtils
pry(FileUtils):1> show-method rm

From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556:
Number of lines: 10
Owner: FileUtils

def rm(list, options = {})
  fu_check_options options, OPT_TABLE['rm']
  list = fu_list(list)
  fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose]
  return if options[:noop]

  list.each do |path|
    remove_file path, options[:force]
  end
end
pry(FileUtils):2>

Вы также можете просматривать Ruby Documentation, выпускать команды Shell, и если вы являетесь пользователем Rails, вы можете использовать pry-rails Gem, чтобы получить PRY в вашу консоль Rails. Также есть способ подключить его в Синатру и использовать его с Heroku.

Есть достаточная документация - есть куча скринкастов, включая железнодорожный пост. Это определенно стоит посмотреть.

Другие советы

Используйте PRY: http://pry.github.com.

Давайте вам:

  • Начать сеансы во время выполнения
  • Просмотр метода исходный код
  • Просмотр метода документации (не используя RI, чтобы вам не приходится предварительно генерировать)
  • Поп и из разных контекстов
  • Синтаксис выделения
  • Гистовая интеграция
  • История просмотра и воспроизведения
  • Открытые редакторы для редактирования метода с использованием edit-method obj.my_method синтаксис

Тонна более великих и оригинальных функций

Я никогда не слышал о (популярной) альтернативе IRB, но наверняка есть несколько полезных драгоценных камней, которые делают опыт IRB намного приятнее:

  • awesome_print. Довольно печатает объекты Ruby с углублением и окрашиванием, очень полезны при попытке посмотреть на вложенные хэши или другие сложные структуры данных.
  • Смотреть видеть тоже довольно круто, он обеспечивает метод lp (Путь поиска), который показывает вам, где ruby-объект получает свои методы (класс, суперкласс и т. Д.).
  • Эскизы Подключает ваш редактор и IRB, так что это особенно полезно, если вы являетесь тем, кто любит интерактивное развитие. Степень inf-ruby также хорошо для этого.
  • Проворачиваться является целым набором улучшений IRB, например, завершение вкладки и выделение синтаксиса. Есть также Утилита ремня, но я не использую это, поэтому не могу прокомментировать свои особенности.

Редактировать

Я забыл Гирб, который очень полезен, например, показывает результаты запроса ActiveRecord на консоли Rails.

JRuby корабли с jirb_swing, который обеспечивает завершение кода.

В области альтернатив в IRB не так много нет, но есть пара драгоценных камней, которые добавляют полезные функции в IRB.

В частности, проворачиваться, который, помимо прочего, дает вам цветной выход (не вводится, хотя и история, которая выходит за пределы текущего сеанса.

Проверить раковина, модульная альтернатива IRB, которая предназначена для расширения. Вы также можете получить ответы от Есть что-то вроде bpython для Ruby?.

ребро представляет собой модульную и легкую интерактивную оболочку Ruby.

Он, как и Pry, использует синтаксический анализатор Ruby, поэтому имеет согласованное поведение с Ruby, следовательно, меньше ошибок (например https://stackoverflow.com/a/39271791/474597)

Он модульный, поэтому его можно легко расширить за счет дополнительных функциональных возможностей.

Он также по-прежнему активно поддерживается по состоянию на 2016 год.

Я сделал чистую рубиновую консоль, вдохновляющую у консоли JavaScript Google Chrome.

https://github.com/sancarn/rubyconsole.

Это все еще в основном проект WIP, когда я продолжаю поиск ошибок с текущим алгоритмом, однако я строю его на 1,9.3+ совместимым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top