Class: Spine::Hub::Subscriptions::Closure
- Inherits:
-
Object
- Object
- Spine::Hub::Subscriptions::Closure
- Defined in:
- lib/spine/hub/subscriptions/closure.rb
Overview
Subscriber for blocks.
Requirements
-
event
- Subscriber triggering event. -
action
- Block to execute.
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#trigger ⇒ Object
readonly
Returns the value of attribute trigger.
Instance Method Summary collapse
-
#initialize(event, action) ⇒ Closure
constructor
A new instance of Closure.
-
#notify(event, *arguments) ⇒ Object
Notifies subscriber about event.
-
#trigger?(event) ⇒ Boolean
Returns true when subscriber is triggered by specified event.
Constructor Details
#initialize(event, action) ⇒ Closure
Returns a new instance of Closure.
12 13 14 15 |
# File 'lib/spine/hub/subscriptions/closure.rb', line 12 def initialize(event, action) @trigger = event @action = action end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
10 11 12 |
# File 'lib/spine/hub/subscriptions/closure.rb', line 10 def action @action end |
#trigger ⇒ Object (readonly)
Returns the value of attribute trigger.
10 11 12 |
# File 'lib/spine/hub/subscriptions/closure.rb', line 10 def trigger @trigger end |
Instance Method Details
#notify(event, *arguments) ⇒ Object
Notifies subscriber about event. When event matches with triggering event it executes action.
Attributes
-
event
- Name of event. -
arguments
- Arguments for event.
23 24 25 |
# File 'lib/spine/hub/subscriptions/closure.rb', line 23 def notify(event, *arguments) action.call(*arguments) if trigger?(event) end |
#trigger?(event) ⇒ Boolean
Returns true when subscriber is triggered by specified event.
Attributes
-
event
- Name of event.
31 32 33 |
# File 'lib/spine/hub/subscriptions/closure.rb', line 31 def trigger?(event) trigger == event end |