Displays what methods are getting called, with what arguments, and their return values or exceptions thrown.
You just have to include Hax in the class you want to look at
This will probably break if your method is expecting a block
$ ruby example.rb
Patching Hello::hello
Patching Hello::hello_times
>> Calling Hello::hello with args []
Hello!
>> Returning nil
>> Calling Hello::hello_times with args [2]
>>>> Calling Hello::hello with args []
Hello!
>>>> Returning nil
>>>> Calling Hello::hello with args []
Hello!
>>>> Returning nil
>> Returning 1..2
>> Calling Hello::hello_times with args []
>> Threw exception ArgumentError - wrong number of arguments (0 for 1)
/Users/robertmcneil/Projects/99designs/roflcopter/hax.rb:41:in `throw': uncaught throw #<ArgumentError: wrong number of arguments (0 for 1)> (ArgumentError)
	from /Users/porty/hax/hax.rb:41:in `rescue in block (2 levels) in included'
	from /Users/porty/hax/hax.rb:30:in `block (2 levels) in included'
	from example.rb:21:in `<main>'