Moin!
Breakpoint.rb is a small library that lets you set breakpoints by calling a method. When executed, a breakpoint causes an interactive ruby session to be spawned with the current context. This makes it especially useful for debugging because Ruby has powerful built-in capabilities for exploring object environments. (Kernel#caller, Object#inspect, Object#respond_to?, Kernel#local_variables, Object#instance_variables and so on.)
There's also support for overriding return values and for an assert() method that automatically sets a breakpoint in case an unexpected situation occurs.
I wrote this because I constantly found myself placing calls to p() in my code when debugging -- I think that this library is a good replacement for doing that which is the reason of me releasing it.
The code and documentation (including a sample session) is available from the following URL:
http://cb.wardust.net/codepaste/view/paste/54
You'll need to have Binding.of_caller available. It can be obtained at this location:
http://noegnud.sourceforge.net/flgr/binding_of_caller.rb
This should be easier to use than the debug.rb that comes with Ruby, but debug.rb is more powerful overall. (It has stepping capabilities, for example.)
I'm currently overloading IRB.start -- If anybody knows of a better way to spawn an irb session with a custom binding: I'd love to hear about it.
Regards,
Florian Gross