Module: ActsAsImmutable::ClassMethods

Defined in:
lib/acts_as_immutable.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



50
51
52
53
54
# File 'lib/acts_as_immutable.rb', line 50

def self.extended(base)
  base.class_attribute :mutable_attributes
  base.class_attribute :mutable_condition
  base.class_attribute :mutable_options
end

Instance Method Details

#acts_as_immutable(*mutable_attributes, &condition) ⇒ Object



56
57
58
59
60
61
62
63
64
65
# File 'lib/acts_as_immutable.rb', line 56

def acts_as_immutable(*mutable_attributes, &condition)
  options = {:new_records_mutable => true}
  options.merge!(mutable_attributes.pop) if mutable_attributes.last.is_a?(Hash)
  self.mutable_attributes = mutable_attributes
  self.mutable_condition  = condition
  self.mutable_options    = options

  self.validate :validate_immutability
  self.before_destroy :validate_immutability_destroy
end

#mutable_attributesObject



67
68
69
# File 'lib/acts_as_immutable.rb', line 67

def mutable_attributes
  self.mutable_attributes || []
end