Подтвердить что ты не робот

Какие альтернативы IRB существуют?

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

4b9b3361

Ответ 1

Какое совпадение. Rubyflow только что вчера анонсировал irbtools gem, который представляет собой мета-жемчуг, содержащий множество прохладных драгоценных камней irb. Он содержит:

  • Раскрашено и выводится как комментарий wirb и fancy_irb
  • Хорошее приглашение IRB и автоматическое отключение IRB.
  • Включает stdlibs FileUtils: 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 - помещает объект, возвращает self (используя 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 году

Поскольку я написал это, Pry стал популярной заменой 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, выдавать команды оболочки, а если вы пользователь Rails, вы можете использовать драгоценный камень pry-rails, чтобы получить доступ к вашей консоли Rails. Там также можно подключить его к Синатре и использовать его с Героку.

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

Ответ 2

Использовать Pry: http://pry.github.com

Позволяет вам:

  • начать сеансы во время выполнения
  • просмотреть исходный код метода
  • просмотреть документацию метода (не используя RI, поэтому вам не нужно его генерировать)
  • входить и выходить из разных контекстов
  • подсветка синтаксиса Интеграция
  • gist
  • просмотр и воспроизведение истории
  • открыть редакторы для редактирования метода с использованием синтаксиса edit-method obj.my_method

Более тонкие и оригинальные функции

Ответ 3

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

  • awesome_print довольно печатает объекты Ruby с отступом и раскраской, очень полезно при попытке взглянуть на вложенные хэши или другие сложные структуры данных.
  • looksee тоже очень классно, он предоставляет метод lp (путь поиска), который показывает вам, где объект Ruby получает свой методы из (класс, суперкласс и т.д.).
  • Sketches соединяет ваш редактор и IRB, поэтому он особенно полезен, если вы тип, которому нравится интерактивная разработка. Emacs с inf-ruby также хорош для этого.
  • Wirble - это целый набор улучшений IRB, таких как табуляция и подсветка синтаксиса. Там также Utility Belt, но я лично этого не использую, поэтому не могу комментировать его функции.

Edit

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

Ответ 5

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

Ответ 6

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

Наиболее заметно wirble, который, помимо прочего, дает вам цветной вывод (не вводный) и историю, которая выходит за рамки текущей сессии.

Ответ 8

rib - это модульная и легкая интерактивная оболочка Ruby.

Он, как и Pry, использует синтаксический анализатор Ruby, поэтому имеет последовательное поведение с Ruby, таким образом, меньше ошибок (например, fooobar.com/info/167919/...)

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

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