Могу ли я использовать контекст как @context внутри класса интерактора?

В некоторых интеракторах определено несколько функций для использования в функции вызова (я не использую утилиту для организации таких функций).
Можно ли использовать@context вместо того contextв этой ситуации?

Ссылка URL: https://github.com/collectiveidea/interactor

Спасибо за любую помощь

1 ответ

Решение

Как видно из исходного кода context это просто простой метод доступа (метод получения), объявленный attr_reader:

module Interactor
  # Internal: Install Interactor's behavior in the given class.
  def self.included(base)
    base.class_eval do
      extend ClassMethods
      include Hooks

      # Public: Gets the Interactor::Context of the Interactor instance.
      attr_reader :context
    end
  end

Таким образом, почти нет заметной разницы между прямым доступом к переменной экземпляра (@context) и через context при условии, что вы обращаетесь к нему из класса, который включает этот модуль.

class MyInteractor
  include Interactor

  def my_method
    @context
    # is the exact same as 
    context
    # except for the method call
  end
end
Другие вопросы по тегам