Class: FlowObject::Callbacks

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_object/callbacks.rb

Overview

Storage for users callbacks

Defined Under Namespace

Classes: Iteration

Constant Summary collapse

NOOP =
proc {}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(list) ⇒ Callbacks

Returns a new instance of Callbacks.



51
52
53
54
55
56
57
58
59
# File 'lib/flow_object/callbacks.rb', line 51

def initialize(list)
  @callbacks = Hash.new { |hash, key| hash[key] = NOOP }
  each_callback(list) do |callback, callback_alias|
    define_singleton_method(callback) do |&block|
      block.nil? ? @callbacks[callback] : @callbacks[callback] = block
    end
    singleton_class.class_eval { alias_method(callback_alias, callback) } if callback_alias
  end
end