class Suricate::DelegationCallback

Public Class Methods

new(*callbacks) click to toggle source
# File lib/suricate/delegation_callback.rb, line 3
def initialize(*callbacks)
  callbacks.each do |callback|
    define_callback(callback)
  end
end

Public Instance Methods

call(callback_name, *args) click to toggle source
# File lib/suricate/delegation_callback.rb, line 9
def call(callback_name, *args)
  callback = instance_variable_get(:"@#{callback_name}_callback")
  callback.call(*args) if callback
end

Private Instance Methods

define_callback(callback) click to toggle source
# File lib/suricate/delegation_callback.rb, line 16
def define_callback(callback)
  define_singleton_method callback.to_sym do |&block|
    instance_variable_set(:"@#{callback}_callback", block)
  end
end