Могу ли я использовать контекст как @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