module Nifty::Utils::ActiveRecord::DefaultValue::ModelExtensions

Public Class Methods

included(base) click to toggle source
# 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

Public Instance Methods

_set_default_values() click to toggle source
# 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