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


272
273
274
275
276
277
278
279
280
# File 'lib/hanami/utils/callbacks.rb', line 272

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


288
289
290
# File 'lib/hanami/utils/callbacks.rb', line 288

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


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

def hash
  callback.hash
end