class Hanami::Utils::Callbacks::Factory
Callback
factory
@since 0.1.0 @api private
Public Class Methods
fabricate(callback)
click to toggle source
Instantiates a ‘Callback` according to if it responds to call.
@param callback [Object] the object that needs to be wrapped
@return [Callback, MethodCallback]
@since 0.1.0
@example
require 'hanami/utils/callbacks' callable = Proc.new{} # it responds to #call method = :upcase # it doesn't responds to #call Hanami::Utils::Callbacks::Factory.fabricate(callable).class # => Hanami::Utils::Callbacks::Callback Hanami::Utils::Callbacks::Factory.fabricate(method).class # => Hanami::Utils::Callbacks::MethodCallback
# File lib/hanami/utils/callbacks.rb, line 226 def self.fabricate(callback) if callback.respond_to?(:call) Callback.new(callback) else MethodCallback.new(callback) end end