Gavin Kistner wrote:

> On Sep 28, 2004, at 6:32 PM, Brian Schr?der 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'.
> -- 
> (-, /\ \/ / /\/
>
>
Thank you for looking into it. As written in the header, most of the 
observable stuff is taken from a source I don't recall at the moment. 
One problem with the implementation is, that it is quite difficult to 
deregister, if you don't save the original proc somewhere.

Thanks also for the corrections. Things like this are always slipping, 
and I'm not a native english speaker (obviously ;).

Regards,.

Brian