Enabling Pry with reload

For anyone coming to this question recently: the answer has changed in Rails 3.2, because they've changed how they implement reload! Where in earlier version the irb commands were added as methods to Object, now they are added to IRB::ExtendCommandBundle to avoid polluting the global namespace.

What I do now is (1) in development.rb

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

and (2) in .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 

Here's the link to the Rails pull request where the change was introduced -https://github.com/rails/rails/pull/3509

你可能感兴趣的:(Rails,pry)