47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# File 'lib/dejavu.rb', line 47
def save_for_dejavu(obj, opts = {})
attrs = if opts[:only] && opts[:only].is_a?(Array)
obj.attributes.slice(*opts[:only].map(&:to_s))
else
obj.attributes
end
missing_keys = []
if keys = opts[:nested]
keys = [keys].flatten
keys.each { |key| attrs = save_nested_for_dejavu(obj, key, attrs) }
end
if virtual = opts[:virtual]
missing_keys += [virtual].flatten
end
missing_keys.each do |key|
attrs[key] = obj.send(key)
end
flash[:"saved_#{object_name(obj)}_for_redisplay"] = attrs
end
|