module DaimonSkycrawlers::Callbacks
This module provides simple callback system
Public Class Methods
new()
click to toggle source
@private
Calls superclass method
# File lib/daimon_skycrawlers/callbacks.rb, line 7 def initialize super @before_process_callbacks = [] @after_process_callbacks = [] end
Public Instance Methods
after_process(callback = nil, &block)
click to toggle source
Register after process callback
@param callback [Object] This object must respond to call @yield [message] @yieldparam message [Hash]
# File lib/daimon_skycrawlers/callbacks.rb, line 51 def after_process(callback = nil, &block) if block_given? @after_process_callbacks << block else @after_process_callbacks << callback if callback.respond_to?(:call) end end
before_process(callback = nil, &block)
click to toggle source
Register before process callback
@param callback [Object] This object must respond to call @yield [message] @yieldparam message [Hash]
# File lib/daimon_skycrawlers/callbacks.rb, line 20 def before_process(callback = nil, &block) if block_given? @before_process_callbacks << block else @before_process_callbacks << callback if callback.respond_to?(:call) end end
clear_after_process_callbacks()
click to toggle source
Clear all after process callbacks
# File lib/daimon_skycrawlers/callbacks.rb, line 71 def clear_after_process_callbacks @after_process_callbacks = [] end
clear_before_process_callbacks()
click to toggle source
Clear all before process callbacks
# File lib/daimon_skycrawlers/callbacks.rb, line 40 def clear_before_process_callbacks @before_process_callbacks = [] end
run_after_process_callbacks(message)
click to toggle source
Run registered before process callbacks
# File lib/daimon_skycrawlers/callbacks.rb, line 62 def run_after_process_callbacks(message) @after_process_callbacks.each do |callback| callback.call(message) end end
run_before_process_callbacks(message)
click to toggle source
Run registered before process callbacks
# File lib/daimon_skycrawlers/callbacks.rb, line 31 def run_before_process_callbacks(message) @before_process_callbacks.all? do |callback| callback.call(message) end end