В классе Ruby я хотел бы сохранить значение переменной в тот момент, когда она включает данный модуль. Ниже надуманный пример:
module M
def self.included(base)
base.class_eval do
@@inclusion_time = Time.now
def included_at
@@inclusion_time
end
end
end
end
class A
include M
end
sleep 3
class B
include M
end
sleep 3
class C
include M
end
a = A.new
b = B.new
c = C.new
puts a.included_at
puts b.included_at
puts c.included_at
Я пробовал это разными способами (attr_accessor, set_constant и т. д.), но конечный результат всегда один и тот же. Все классы имеют то значение, которое было установлено последним.
Как мне обойти это?