41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/changebase/action_controller.rb', line 41
def changebase_metadata_wrapper(&block)
metadata = {}
changebase_metadata.each do |keys, value|
data = metadata
keys[0...-1].each do |key|
data[key] ||= {}
data = data[key]
end
value = case value
when Symbol
self.send(value)
when Proc
instance_exec(&value)
else
value
end
if keys.last
data[keys.last] ||= value
else
data.merge!(value)
end
end
ActiveRecord::Base.with_metadata(metadata, &block)
end
|