From: ara.t.howard@... Date: 2006-02-02T01:01:36+09:00 Subject: Re: callbacks, events, notification in general On Thu, 2 Feb 2006, Damphyr wrote: > OK, bare with me, this is brainstorming of a sorts: > I want to have some kind of event notification from my classes. > Typically what I would do would be to pass a logger object and let the > class log by itself, but I'm not really satisfied with this solution in > most cases. > > What I would prefer was define a callback method and give this to the > object. Then I could do whatever I want with it and not only use logs. > Mostly I want to have progress reports. > > something like > > class A > def set_callback notify > @notify=notify > end > def something > puts "something" > send(@notify) if @notify > end > end > > def coocoo > puts "hey" > end > a=A.new > a.something > a.set_callback(:coocoo) > a.something > > Now this does exactly what I want and can be wrapped up in a module to > be included for general use. > Question: Is there a "better" solution? What are my alternatives? > Cheers, > V.- harp:~ > cat a.rb require "observer" class A include Observable def something changed and notify_observers 42 end end class B def update arg p arg end end a = A::new b = B::new a.add_observer b a.something harp:~ > ruby a.rb 42 always a good start to read about the stdlibs! ;-) cheers. -a -- happiness is not something ready-made. it comes from your own actions. - h.h. the 14th dali lama