Module: Observers
- Defined in:
- lib/keys.rb,
lib/version.rb,
lib/observers.rb,
lib/models/key.rb,
lib/models/observer.rb
Defined Under Namespace
Constant Summary collapse
- VERSION =
'0.6.0'
Class Method Summary collapse
Instance Method Summary collapse
-
#observe(key, action: nil) ⇒ Object
Add an observer on the observer side.
-
#observers(key = self) ⇒ Object
Add an observer on the key side.
- #take(key: self, action: nil, event: nil) ⇒ Object
- #trigger(key: self, action: nil, event: nil) ⇒ Object
Class Method Details
.included(klass) ⇒ Object
8 9 10 |
# File 'lib/observers.rb', line 8 def included(klass) klass.extend Observers end |
Instance Method Details
#observe(key, action: nil) ⇒ Object
Add an observer on the observer side.
28 29 30 |
# File 'lib/observers.rb', line 28 def observe(key, action: nil) Keys[key].observe(object: self, action:) end |
#observers(key = self) ⇒ Object
Add an observer on the key side.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/observers.rb', line 14 def observers(key = self) Struct.new(:key) do def push(object, action: nil) Keys[key].observe(object:, action:) end alias :<< :push def count Keys[key].observers.count end end.new(key) end |