Я должен понимать этот фрагмент кода:
module Stealth
module MixpanelSessionTracking
def set(flow:, state:)
retval = super
if ENV['MIXPANEL_PROJECT_TOKEN'].present?
mixpanel = Stealth::Mixpanel.new
mixpanel.tracker.track(user_id, 'State Change', {
'flow' => flow,
'state' => state
})
end
retval
end
end
class Session
prepend Stealth::MixpanelSessionTracking
end
end
Почему я устанавливаю super
в setval
переменную, и прежде чем я вызову retval
переменную в конце определения метода?
Могу ли я просто использовать super
в конце определения метода?
РЕДАКТИРОВАТЬ:
Метод класса предшественника:
module Stealth
class Session
(...)
def set(flow:, state:)
store_current_to_previous(flow: flow, state: state)
@flow = nil
@session = canonical_session_slug(flow: flow, state: state)
Stealth::Logger.l(topic: "session", message: "User #{user_id}: setting session to #{flow}->#{state}")
$redis.set(user_id, session)
end
(...)
end
end