Module: DaimonSkycrawlers::Callbacks

Included in:
DaimonSkycrawlers::Crawler::Base, Processor::Base
Defined in:
lib/daimon_skycrawlers/callbacks.rb

Overview

This module provides simple callback system

Instance Method Summary collapse

Instance Method Details

#after_process(callback = nil) {|message| ... } ⇒ Object

Register after process callback

Parameters:

  • callback (Object) (defaults to: nil)

    This object must respond to call

Yields:

  • (message)

Yield Parameters:

  • message (Hash)


51
52
53
54
55
56
57
# 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) {|message| ... } ⇒ Object

Register before process callback

Parameters:

  • callback (Object) (defaults to: nil)

    This object must respond to call

Yields:

  • (message)

Yield Parameters:

  • message (Hash)


20
21
22
23
24
25
26
# 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_callbacksObject

Clear all after process callbacks



71
72
73
# File 'lib/daimon_skycrawlers/callbacks.rb', line 71

def clear_after_process_callbacks
  @after_process_callbacks = []
end

#clear_before_process_callbacksObject

Clear all before process callbacks



40
41
42
# File 'lib/daimon_skycrawlers/callbacks.rb', line 40

def clear_before_process_callbacks
  @before_process_callbacks = []
end

#run_after_process_callbacks(message) ⇒ Object

Run registered before process callbacks



62
63
64
65
66
# 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) ⇒ Object

Run registered before process callbacks



31
32
33
34
35
# 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