home

Pry и rails 3.2

23 Apr 2012

Время не стоит на месте, и rails развивается своим неведомым путем.
Так получается, что мои советы по работе с pry для привязки его к rails уже не работают в rails 3.2. В частности, если сделать так, как я писал, в консоли не получится сделать reload!. Все из-за этого Pull Request’а. Теперь, вместо расширения класса Object и соотв. “загрязнения” глобального namespace, методы работы с консолью помещены в IRB::ExtendCommandBundle.

Выход из этой ситуации: переписать конфиги соответственно.
В config/environments/development.rb пишем:

silence_warnings do
  begin
    require 'pry'
    IRB = Pry
    module Pry::RailsCommands ;end
    IRB::ExtendCommandBundle = Pry::RailsCommands
  rescue LoadError
  end
end

В корне создаем файл .pryrc и там:

if Kernel.const_defined?("Rails") then
  require File.join(Rails.root,"config","environment")
  require 'rails/console/app'
  require 'rails/console/helpers'
  Pry::RailsCommands.instance_methods.each do |name|
    Pry::Commands.command name.to_s do
      Class.new.extend(Pry::RailsCommands).send(name)
    end
  end
end

А если ты любишь гномиков…

…то все резко меняется! Всего лишь

gem install pry-rails

И еще одной колонией гномиков больше на твоем проекте! И, главное, – все работает без этих всяких там .pryrc.

blog comments powered by Disqus