= message recorder
== What
Message::Recorder is a tool to record messages send to Ruby objects.
== Installing
sudo gem install message-recorder
== The basics
This snippet will first record a downcase message and after that it will replay the recorded messages on some objects.
recorder = Message::Recorder.new
recorder.record.downcase
recorder.send_to("HELLO") # => ["hello"]
recorder.send_to("WORLD") # => ["world"]
This is an example of branching. the with_results method accepts a block which is used to define multiple message chains at once.
recorder = Message::Recorder.new
recorder.record.downcase.with_results do
intern
capitalize
end
recorder.send_to("HELLO") # => [:hello, "Hello"]
== Demonstration of usage
This is a more complex example with nested branches.
recorder = Message::Recorder.new
recorder.record.compact.with_result do
collect { |s| s.intern }
collect { |s| s.capitalize }.with_results do
collect { |s| s.concat " world" }
collect { |s| s.concat " simon" }
end.with_results do
collect { |s| s.concat "!" }
collect { |s| s.concat "?" }
end
end
results = recorder.send_to([nil, "hello", nil, "bye", nil])
results == [ # the result is ...
[:hello, :bye],
["Hello world!", "Bye world!"],
["Hello simon!", "Bye simon!"],
["Hello world?", "Bye world?"],
["Hello simon?", "Bye simon?"]
]
== License
This code is free to use under the terms of the MIT license.
== Contact
Comments are welcome. Send an email to Simon Menke mailto:simon@5xm.org