Class: WeirdInteractor::Base
- Inherits:
-
Object
- Object
- WeirdInteractor::Base
- Defined in:
- lib/weird_interactor/base.rb
Overview
Base interactor.
Direct Known Subclasses
Defined Under Namespace
Classes: UnregisteredEventCalled
Instance Attribute Summary collapse
-
#params ⇒ Object
readonly
Returns the value of attribute params.
Instance Method Summary collapse
-
#initialize(params) ⇒ Base
constructor
A new instance of Base.
-
#on(*event_names, &block) ⇒ Object
Register callback on event.
-
#publish(event_name, data) ⇒ Object
Execute callback for the given event.
-
#registered_events ⇒ Hash
Registered callbacks for events.
Constructor Details
#initialize(params) ⇒ Base
Returns a new instance of Base.
9 10 11 |
# File 'lib/weird_interactor/base.rb', line 9 def initialize(params) @params = params end |
Instance Attribute Details
#params ⇒ Object (readonly)
Returns the value of attribute params.
6 7 8 |
# File 'lib/weird_interactor/base.rb', line 6 def params @params end |
Instance Method Details
#on(*event_names, &block) ⇒ Object
Register callback on event.
24 25 26 27 28 |
# File 'lib/weird_interactor/base.rb', line 24 def on(*event_names, &block) Array(event_names).each do |event_name| registered_events[event_name] = block end end |
#publish(event_name, data) ⇒ Object
Execute callback for the given event.
34 35 36 37 38 39 40 41 |
# File 'lib/weird_interactor/base.rb', line 34 def publish(event_name, data) handler = registered_events[event_name] unless handler.nil? handler.call(data) else raise UnregisteredEventCalled, event_name end end |
#registered_events ⇒ Hash
Registered callbacks for events.
16 17 18 |
# File 'lib/weird_interactor/base.rb', line 16 def registered_events @registered_events ||= {} end |