module MagicLamp::Callbacks

Attributes

configuration[RW]

Public Class Methods

new(configuration) click to toggle source
# File lib/magic_lamp/callbacks.rb, line 7
def initialize(configuration)
  self.configuration = configuration
end

Public Instance Methods

execute_after_each_callback() click to toggle source
# File lib/magic_lamp/callbacks.rb, line 15
def execute_after_each_callback
  execute_callback(:after)
end
execute_before_each_callback() click to toggle source
# File lib/magic_lamp/callbacks.rb, line 11
def execute_before_each_callback
  execute_callback(:before)
end
execute_callbacks_around() { || ... } click to toggle source
# File lib/magic_lamp/callbacks.rb, line 19
def execute_callbacks_around(&block)
  if block.nil?
    raise ArgumentError, "#{self.class.name}##{__method__} requires a block"
  end

  execute_before_each_callback
  value = yield
  execute_after_each_callback
  value
end

Private Instance Methods

execute_callback(type) click to toggle source
# File lib/magic_lamp/callbacks.rb, line 32
def execute_callback(type)
  callback = configuration.send("#{type}_each_proc")
  callback.call if callback
end