On Sep 28, 2004, at 6:32 PM, Brian Schröäer wrote: > Because I'm not a ruby guru, and I want to teach them "the real ruby > way" I ask you to donate a bit of your time to look at the source and > make improvement suggestions. > [...] > http://ruby.brian-schroeder.de/ants/ I don't have either the time or expertise to fully investigate what you've done here, but I wanted to comment on how similar are your Observable module: http://ruby.brian-schroeder.de/ants/source/observable-rb.html and my EventTarget module: http://phrogz.net/RubyLibs/EventTarget.rb I changed mine to use symbols rather than strings after I saw yours, since it's more Ruby-ish. (I had already decided yesterday morning to use blocks by default and force &foo for existing method passing.) I like how yours allows for 'forwarding along' arbitrary parameters, although I feel like I prefer more structure in my life. (Said structure being a discrete Event object with specified methods which is used to shuttle data between the signal and the receiver.) It feels like it provides a bit more de-coupling between the sender and the receiver. Your names are cleaner; mine are sort of ugly and confusing for the sake of consistency with the DOM 2 Events model. Oh, and BTW, you have two typos in your Usage example: > observed.register(:foo) do | obeserved, *args | I'm guessing that shouldn't be "obeserved"...should it be 'observed' (to match your usage in the string?) or something else (is there a name collision with the parameter passed to the initialize method)? > puts "Observered object #{observed} signalled foo with arguments #{args.inspect} I'm guessing 'Observered' should be 'Observer' or 'Observed'. -- (-, /\ \/ / /\/