Class: ProcessorDispatcher
- Inherits:
-
Edrive::Dispatcher
- Object
- Edrive::Dispatcher
- ProcessorDispatcher
- Defined in:
- lib/edrive/processor_dispatcher.rb
Overview
Event Dispatcher For Processors
Constant Summary collapse
- DEFINED_EVENT =
Returns defined event symbols.
i[before after].freeze
- DEFAULT_PROCESSOR_PROCESS =
Returns default processor process symbol.
:process
Instance Attribute Summary collapse
-
#processor ⇒ Processor
processor object.
-
#processor_process ⇒ Symbol
processor main method symbol.
Instance Method Summary collapse
-
#dispatch_all(use_result = true) ⇒ Mixed
Dispatch all events.
-
#dispatch_processor_process(*args) ⇒ Mixed
Dispach processor process.
-
#initialize(processor, processor_process = DEFAULT_PROCESSOR_PROCESS) ⇒ ProcessorDispatcher
constructor
Initialize.
-
#subscribe(event, handler = nil, &block) ⇒ Array
subscribe handler (proc, lambda, block).
Methods inherited from Edrive::Dispatcher
#clear!, #clear_all!, #dispatch, #dispatch_with_data, #handlers
Constructor Details
#initialize(processor, processor_process = DEFAULT_PROCESSOR_PROCESS) ⇒ ProcessorDispatcher
Initialize
21 22 23 24 25 |
# File 'lib/edrive/processor_dispatcher.rb', line 21 def initialize(processor, processor_process = DEFAULT_PROCESSOR_PROCESS) super() @processor = processor @processor_process = processor_process end |
Instance Attribute Details
#processor ⇒ Processor
processor object
9 10 11 |
# File 'lib/edrive/processor_dispatcher.rb', line 9 def processor @processor end |
#processor_process ⇒ Symbol
processor main method symbol
9 10 11 |
# File 'lib/edrive/processor_dispatcher.rb', line 9 def processor_process @processor_process end |
Instance Method Details
#dispatch_all(use_result = true) ⇒ Mixed
Dispatch all events
41 42 43 44 45 46 47 48 49 |
# File 'lib/edrive/processor_dispatcher.rb', line 41 def dispatch_all(use_result = true) dispatch(DEFINED_EVENT[0]) if use_result result = dispatch_processor_process return dispatch_with_data(DEFINED_EVENT[1], result) end dispatch_processor_process dispatch(DEFINED_EVENT[1]) end |
#dispatch_processor_process(*args) ⇒ Mixed
Dispach processor process
54 55 56 |
# File 'lib/edrive/processor_dispatcher.rb', line 54 def dispatch_processor_process(*args) processor.send(processor_process, *args) end |
#subscribe(event, handler = nil, &block) ⇒ Array
subscribe handler (proc, lambda, block)
33 34 35 36 |
# File 'lib/edrive/processor_dispatcher.rb', line 33 def subscribe(event, handler = nil, &block) undefined_event_protect(event) super end |