7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/active_record/safe_initialize.rb', line 7
def safe_initialize(*attributes)
options = attributes.
raise ArgumentError, "Missing initialization value" unless options[:with]
after_initialize do
attributes.each do |attribute|
if has_attribute?(attribute) && read_attribute(attribute).nil?
value = options[:with]
value = instance_exec(&value) if value.respond_to?(:call)
value = self.send(value) if value.is_a?(Symbol)
self.send "#{attribute}=", value
end
end
end
end
|