module Performify::Callbacks

Constants

TYPES_OF_CALLBACK

Public Instance Methods

clean_callbacks() click to toggle source
# File lib/performify/callbacks.rb, line 7
def clean_callbacks
  @service_callbacks = {}
end
execute_callbacks(type_of_callback, instance) click to toggle source
# File lib/performify/callbacks.rb, line 23
def execute_callbacks(type_of_callback, instance)
  unless TYPES_OF_CALLBACK.include?(type_of_callback)
    raise UnknownTypeOfCallbackError, "Type #{type_of_callback} is not allowed"
  end

  cbs = (@service_callbacks || {}).fetch(type_of_callback, [])
  cbs.each { |cb| cb.is_a?(Proc) ? instance.instance_eval(&cb) : instance.send(cb) }
  nil
end
register_callback(type_of_callback, method_name = nil, &block) click to toggle source
# File lib/performify/callbacks.rb, line 11
def register_callback(type_of_callback, method_name = nil, &block)
  unless TYPES_OF_CALLBACK.include?(type_of_callback)
    raise UnknownTypeOfCallbackError, "Type #{type_of_callback} is not allowed"
  end

  @service_callbacks ||= {}
  @service_callbacks[type_of_callback] ||= []
  @service_callbacks[type_of_callback] << method_name if method_name
  @service_callbacks[type_of_callback] << block if block_given?
  nil
end