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