Module: Kamaze::Project::Concern::Observable::ClassMethods
- Defined in:
- lib/kamaze/project/concern/observable.rb
Overview
Class methods
Instance Method Summary collapse
-
#add_observer(observer_class, func = :handle_event) ⇒ self
Add observer.
-
#delete_observer(observer_class) ⇒ self
Remove observer, so that it will no longer receive notifications.
-
#delete_observers ⇒ self
Remove all observers.
- #observer_peers ⇒ Hash protected
Instance Method Details
#add_observer(observer_class, func = :handle_event) ⇒ self
Add observer.
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/kamaze/project/concern/observable.rb', line 58 def add_observer(observer_class, func = :handle_event) func = func.to_sym unless observer_class.instance_methods.include?(func) m = "#<#{observer_class}> does not respond to `#{func}'" raise NoMethodError, m end observer_peers[observer_class] = func self end |
#delete_observer(observer_class) ⇒ self
Remove observer, so that it will no longer receive notifications.
75 76 77 78 79 |
# File 'lib/kamaze/project/concern/observable.rb', line 75 def delete_observer(observer_class) observer_peers.delete(observer_class) return self end |
#delete_observers ⇒ self
Remove all observers.
84 85 86 87 88 |
# File 'lib/kamaze/project/concern/observable.rb', line 84 def delete_observers observers.clear self end |
#observer_peers ⇒ Hash (protected)
93 94 95 |
# File 'lib/kamaze/project/concern/observable.rb', line 93 def observer_peers @observer_peers ||= {} end |