summaryrefslogtreecommitdiff
path: root/lib/observer.rb
diff options
context:
space:
mode:
author(no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-03-22 04:48:57 +0000
committer(no author) <(no author)@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-03-22 04:48:57 +0000
commit7dc80f4f9c42752a6c870cff8a908f283b37cffa (patch)
tree8d73df58a238e3a123be05e138451e8a6373725d /lib/observer.rb
parent89646912c2310e46b87d1c028d7960e08e80dbad (diff)
This commit was manufactured by cvs2svn to create branch 'SHIGEO'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/SHIGEO@2245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/observer.rb')
-rw-r--r--lib/observer.rb46
1 files changed, 0 insertions, 46 deletions
diff --git a/lib/observer.rb b/lib/observer.rb
deleted file mode 100644
index e1b249e885..0000000000
--- a/lib/observer.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# Observable Mixin
-#
-# Observers must respond to update
-
-module Observable
- def add_observer(observer)
- @observer_peers = [] unless defined? @observer_peers
- unless observer.respond_to? :update
- raise NameError, "observer needs to respond to `update'"
- end
- @observer_peers.push observer
- end
- def delete_observer(observer)
- @observer_peers.delete observer if defined? @observer_peers
- end
- def delete_observers
- @observer_peers.clear if defined? @observer_peers
- end
- def count_observers
- if defined? @observer_peers
- @observer_peers.size
- else
- 0
- end
- end
- def changed(state=true)
- @observer_state = state
- end
- def changed?
- if defined? @observer_state and @observer_state
- true
- else
- false
- end
- end
- 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
- end
-end