module HasDefaults::ActiveRecordExt::InstanceMethods
Public Instance Methods
default_for(name)
click to toggle source
# File lib/has_defaults/active_record_ext.rb, line 48 def default_for(name) raw_value = self.class.has_defaults_options[name.to_sym] evaluate_raw_default_value(raw_value) end
Private Instance Methods
evaluate_raw_default_value(raw_value)
click to toggle source
# File lib/has_defaults/active_record_ext.rb, line 66 def evaluate_raw_default_value(raw_value) value = raw_value if value.respond_to?(:call) value = instance_exec(&value) end value end
set_default_attributes()
click to toggle source
# File lib/has_defaults/active_record_ext.rb, line 55 def set_default_attributes if new_record? self.class.has_defaults_options.each do |name, raw_value| if send(name).nil? value = evaluate_raw_default_value(raw_value) send("#{name}=", value) end end end end