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