Module: Hanami::ClassMethods Private

Defined in:
lib/hanami/interactor.rb

Overview

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

Since:

  • 0.5.0

API:

  • private

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(interactor) ⇒ 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.

Since:

  • 0.5.0

API:

  • private



490
491
492
493
494
495
496
497
# File 'lib/hanami/interactor.rb', line 490

def self.extended(interactor)
  interactor.class_eval do
    include Utils::ClassAttribute

    class_attribute :exposures
    self.exposures = Utils::Hash.new
  end
end

Instance Method Details

#expose(*instance_variable_names) ⇒ 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.

Expose local instance variables into the returning value of #call

Examples:

Expose instance variable


class 
  include Hanami::Interactor
  expose :user

  def initialize(params)
    @params = params
    @user   = User.new(@params[:user])
  end

  def call
    # ...
  end
end

result = .new(user: { name: "Luca" }).call

result.user   # => #<User:0x007fa85c58ccd8 @name="Luca">
result.params # => NoMethodError

Parameters:

  • one or more instance variable names

See Also:

Since:

  • 0.5.0

API:

  • private



528
529
530
531
532
# File 'lib/hanami/interactor.rb', line 528

def expose(*instance_variable_names)
  instance_variable_names.each do |name|
    exposures[name] = "@#{name}"
  end
end