diff options
Diffstat (limited to 'lib/observer.rb')
| -rw-r--r-- | lib/observer.rb | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/lib/observer.rb b/lib/observer.rb deleted file mode 100644 index 5928367a7d..0000000000 --- a/lib/observer.rb +++ /dev/null @@ -1,42 +0,0 @@ -# Observable Mixin -# -# Observers must respond to update - -module Observable - def add_observer(observer) - @observer_peers = [] unless @observer_peers - unless defined? observer.update - raise NameError, "observer needs to respond to `update'" - end - @observer_peers.push observer - end - def delete_observer(observer) - @observer_peers.delete observer if @observer_peers - end - def delete_observers - @observer_peers.clear if @observer_peers - end - def count_observers - if @observer_peers - @observer_peers.size - else - 0 - end - end - def changed(state=TRUE) - @observer_state = state - end - def changed? - @observer_state - end - def notify_observers(*arg) - if @observer_state - if @observer_peers - for i in @observer_peers - i.update(*arg) - end - end - @observer_state = FALSE - end - end -end |
