module Riveter::AttributeDefaultValues::ClassMethods

Public Instance Methods

default_value_for(attribute, value=nil, &block) click to toggle source

defines a default value for the given attribute

E.g. default_value_for :active, true

default_value_for :active do
  # ... some logic ...
end
# File lib/riveter/attribute_default_values.rb, line 31
def default_value_for(attribute, value=nil, &block)
  self.attribute_defaults[attribute] = (block_given? ? block : value)
end
default_values(*args) click to toggle source

defines default values for one or more attributes specify defaults using a hash, where the key is the attribute name and the value is the value or a proc

E.g. default_values :confirmed => true,

:processed => false,
:some_other => lambda { ... some logic ... }
# File lib/riveter/attribute_default_values.rb, line 44
def default_values(*args)
  defaults = args.first.is_a?(Hash) ?
                args.first :
                { args.first => args.last }

  defaults.each do |attribute, value_or_proc|
    value_or_proc.respond_to?(:call) ?
      default_value_for(attribute, &value_or_proc) :
      default_value_for(attribute, value_or_proc)
  end
end