Class: Hanami::Utils::Callbacks::MethodCallback Private

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

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Method callback It wraps a symbol or a string representing a method name that is implemented by the context within it will be called.

Since:

  • 0.1.0

Instance Attribute Summary

Attributes inherited from Callback

#callback

Instance Method Summary collapse

Methods inherited from Callback

#initialize

Constructor Details

This class inherits a constructor from Hanami::Utils::Callbacks::Callback

Instance Method Details

#call(context, *args) ⇒ void, Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Executes the callback within the given context and eventually passing the given arguments. Those arguments will be passed according to the arity of the target method.

Parameters:

  • context (Object)

    the context within we want to execute the callback.

  • args (Array)

    an array of arguments that will be available within the execution.

Returns:

  • (void, Object)

    It may return a value, it depends on the callback.

See Also:

Since:

  • 0.1.0



268
269
270
271
272
273
274
275
276
# File 'lib/hanami/utils/callbacks.rb', line 268

def call(context, *args)
  method = context.method(callback)

  if method.parameters.any?
    method.call(*args)
  else
    method.call
  end
end

#eql?(other) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

Since:

  • 0.1.0



284
285
286
# File 'lib/hanami/utils/callbacks.rb', line 284

def eql?(other)
  hash == other.hash
end

#hashObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.1.0



279
280
281
# File 'lib/hanami/utils/callbacks.rb', line 279

def hash
  callback.hash
end