From: Joshua Ballanco Date: 2007-06-07T14:47:17+09:00 Subject: KVO in Ruby Hey all! I'm still relatively new to Ruby, so forgive me if this seems like a naive (or even stupid) question, but... Is there a good method for implementing Key-Value Observing in Ruby? Basically, what I'd like to be able to do is this: class Actor attr_accessor :var_to_change def change_var @var_to_change = 1 100.times {@var_to_change += 1} end end class Observer def initialize(act) @actor = act act.add_observer(self, var_to_change) end def observeValue(var, sender) if sender == @actor puts "The value is now #{var}" end end end act = Actor.new obs = Observer.new(act) thr = Thread.new {act.change_var} thr.join The resulting output would be: The value is now 1 The value is now 2 ...and so on. I realize that there are all sorts of ways that similar functionality could be achieved, but something about KVO is really attractive (especially since Ruby is already really good at KVC). It seems to me that this would be a fairly easy to implement as a module, but I don't want to have to do the work if someone else already has. Does anyone know how RubyCocoa handles KVO? or if it does? Thanks for any help/comments/scornful rebukes. ;-) -Josh -- Posted via http://www.ruby-forum.com/.