Class: Lotus::Utils::Callbacks::Factory

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

Overview

Callback factory

Since:

  • 0.1.0

Class Method Summary collapse

Class Method Details

.fabricate(callback) ⇒ Callback, MethodCallback

Instantiates a ‘Callback` according to if it responds to #call.

Examples:

require 'lotus/utils/callbacks'

callable = Proc.new{} # it responds to #call
method   = :upcase    # it doesn't responds to #call

Lotus::Utils::Callbacks::Factory.fabricate(callable).class
  # => Lotus::Utils::Callbacks::Callback

Lotus::Utils::Callbacks::Factory.fabricate(method).class
  # => Lotus::Utils::Callbacks::MethodCallback

Parameters:

  • callback (Object)

    the object that needs to be wrapped

Returns:

Since:

  • 0.1.0



205
206
207
208
209
210
211
# File 'lib/lotus/utils/callbacks.rb', line 205

def self.fabricate(callback)
  if callback.respond_to?(:call)
    Callback.new(callback)
  else
    MethodCallback.new(callback)
  end
end