Консоль класса Люкс

Опубликовано 05.04.2010

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

Настройки IRB-консоли задаются в файле .irbrc в домашней директории пользователя. Это по сути обычный ruby-файл, в нем можно подключать различные gem-ы, добавлять методы и т.д.

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

  • wirble – добавляет посветку в стандартный вывод IRB и добавляет поддержку истории выполнения команд
  • awesome_print – позволяет выводить объекты на экран в удобном формате и с подсветкой. Использование в консоли:
    ap this_is_my_object
  • looksee – позволяет посмотреть список методов объекта, разбитый по классам/модулям, из которых эти методы происходят. Очень удобно при исследовании внутренностей классов и модулей фреймворка при отладке или разработке плагинов. Использование в консоли:
    lp this_is_my_object
  • Вывод лога SQL-запросов в консоль – при работе с моделями ActiveRecord все запросы к БД будут выводиться прямо на экран:
    show_log # включаем логи
    hide_log # выключаем логи
  • Замер скорости выполнения кода:
    time { ... }      # Код выполнится 1 раз
    time(100) { ... } # Код выполнится 100 раз
  • Выполнение SQL-запроса:
    sql "SELECT count(*) FROM users"

Надо сказать, работать в консоли стало в разы удобнее.

Итоговый файл .irbrc можно взять здесь

А вы используете какие-нибудь дополнения для IRB-консоли?