summaryrefslogtreecommitdiff
path: root/lib/observer.rb
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-05 08:29:52 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-09-05 08:29:52 +0000
commit48653d5ef0ed47469d64170d70c8c2a9f21f159e ()
treedf86f2bf64022459acef5eea33442fb3d3ebcc27 /lib/observer.rb
parentf5ac36f1a3e484464d13a115bd92fa9904215201 (diff)
* lib/ostruct.rb: a from Florian Gross <[email protected]>
merged to allow recursive inspect (and to_s) for OpenStruct. [ruby-core:05532] * lib/observer.rb: a from nornagon <[email protected]> merged to allow arbitrary names for update methods. [ruby-core:05416] * eval.c (rb_f_fcall): new method to avoid inefficiency of obj.instance_eval{send(...)} tricks. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9081 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/observer.rb19
1 files changed, 10 insertions, 9 deletions
@@ -118,14 +118,15 @@ module Observable
#
# Add +observer+ as an observer on this object. +observer+ will now receive
- # notifications.
#
- def add_observer(observer)
- @observer_peers = [] unless defined? @observer_peers
- unless observer.respond_to? :update
- raise NoMethodError, "observer needs to respond to `update'"
end
- @observer_peers.push observer
end
#
@@ -181,9 +182,9 @@ module Observable
def notify_observers(*arg)
if defined? @observer_state and @observer_state
if defined? @observer_peers
- for i in @observer_peers.dup
- i.update(*arg)
- end
end
@observer_state = false
end