Module: DefaultValueForPlugin::ClassMethods

Defined in:
lib/vex/active_record/plugins/default_value_for/init.rb

Instance Method Summary collapse

Instance Method Details

#default_value_for(attribute, value = nil, &block) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/vex/active_record/plugins/default_value_for/init.rb', line 43

def default_value_for(attribute, value = nil, &block)
  if !method_defined?(:initialize_with_defaults)
    include(InstanceMethods)
    alias_method_chain :initialize, :defaults
    class_inheritable_accessor :_default_attribute_values
    self._default_attribute_values = ActiveSupport::OrderedHash.new
  end
  if block_given?
    container = BlockValueContainer.new(block)
  else
    container = NormalValueContainer.new(value)
  end
  _default_attribute_values[attribute.to_s] = container
end

#default_values(values) ⇒ Object



58
59
60
61
62
63
64
65
66
# File 'lib/vex/active_record/plugins/default_value_for/init.rb', line 58

def default_values(values)
  values.each_pair do |key, value|
    if value.kind_of? Proc
      default_value_for(key, &value)
    else
      default_value_for(key, value)
    end
  end
end