A way to start Pry remotely and to connect to it using DRb. This allows to access the state of the running program from anywhere.
gem install pry-remote
Here's a program starting pry-remote:
require 'pry-remote'
class Foo
def initialize(x, y)
binding.pry_remote
end
end
Foo.new 10, 20
Running it will prompt you with a message telling you Pry is waiting for a program to connect itself to it:
[pry-remote] Waiting for client on drb://localhost:9876
You can then connect yourself using pry-remote
:
$ pry-remote
From: example.rb @ line 7 in Foo#initialize:
2:
3: require 'pry-remote'
4:
5: class Foo
6: def initialize(x, y)
=> 7: binding.remote_pry
8: end
9: end
10:
11: Foo.new 10, 20
pry(#<Foo:0x00000000d9b5e8>):1> self
=> #<Foo:0x1efb3b0>
pry(#<Foo:0x00000001efb3b0>):2> ls -l
Local variables: [
[0] :_,
[1] :_dir_,
[2] :_file_,
[3] :_ex_,
[4] :_pry_,
[5] :_out_,
[6] :_in_,
[7] :x,
[8] :y
]
pry(#<Foo:0x00000001efb3b0>):3> ^D