Module: Nifty::Utils::ActiveRecord::DefaultValue::ModelExtensions

Defined in:
lib/nifty/utils/active_record/default_value.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



25
26
27
28
# File 'lib/nifty/utils/active_record/default_value.rb', line 25

def self.included(base)
  base.extend ClassMethods
  base.before_validation :_set_default_values
end

Instance Method Details

#_set_default_valuesObject



30
31
32
33
34
35
36
37
# File 'lib/nifty/utils/active_record/default_value.rb', line 30

def _set_default_values
  self.class.default_value_definitions.each do |field, opts|
    if self.send(field).blank?
      proposed_value = self.instance_exec(&opts[:block])
      self.send("#{field}=", proposed_value)
    end
  end
end