Для тех, кто недавно приходил на этот вопрос: ответ изменился в Rails 3.2, потому что они изменили способ реализации reload!
Где в более ранней версии команды irb были добавлены как методы к Object
, теперь они добавлены на IRB::ExtendCommandBundle
, чтобы избежать загрязнения глобального пространства имен.
Что я делаю сейчас (1) в разработке. Rb
silence_warnings do
begin
require 'pry'
IRB = Pry
module Pry::RailsCommands ;end
IRB::ExtendCommandBundle = Pry::RailsCommands
rescue LoadError
end
end
и (2) в .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
Вот ссылка на pull-запрос Rails, где было внесено изменение -
https://github.com/rails/rails/pull/3509