19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/mongoid_activity_tracker/tracker.rb', line 19
def tracks relation_name, cache_methods: i(to_s)
belongs_to relation_name, polymorphic: true
field "#{relation_name}_cache", type: Hash, default: {}
attr_accessor "#{relation_name}_cache_methods"
define_method "#{relation_name}_cache_methods" do
instance_variable_set("@#{relation_name}_cache_methods", cache_methods) unless instance_variable_get("@#{relation_name}_cache_methods")
instance_variable_get("@#{relation_name}_cache_methods")
end
define_method "#{relation_name}_cache_object" do
OpenStruct.new(send("#{relation_name}_cache"))
end
before_save -> { set_cache(relation_name) }
end
|