Class: MemoryModel::Base

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Callbacks, ActiveModel::Naming, ActiveModel::Translation, ActiveSupport::Autoload, ConcernedInheritance
Includes:
ActiveModel::Conversion, ActiveModel::MassAssignmentSecurity, ActiveModel::Observing, ActiveModel::Serialization, ActiveModel::Validations, Actions, Attributes, AutoIncrement, Collectible, Conversion, Fields, Operations::Comparisons, Persistence
Defined in:
lib/memory_model/base.rb,
lib/memory_model/base/fields.rb,
lib/memory_model/base/actions.rb,
lib/memory_model/base/attributes.rb,
lib/memory_model/base/conversion.rb,
lib/memory_model/base/operations.rb,
lib/memory_model/base/collectible.rb,
lib/memory_model/base/persistence.rb,
lib/memory_model/base/fields/field.rb,
lib/memory_model/base/auto_increment.rb,
lib/memory_model/base/fields/field_set.rb,
lib/memory_model/base/actions/class_methods.rb,
lib/memory_model/base/operations/comparisons.rb

Defined Under Namespace

Modules: Actions, Attributes, AutoIncrement, Collectible, Conversion, Fields, Operations, Persistence

Constant Summary

Constants included from Actions

Actions::VALID_IVARS

Instance Method Summary collapse

Methods included from Conversion

#to_key

Methods included from Persistence

#new_record?, #persisted?

Methods included from Attributes

#attributes, #attributes=, #has_attribute?, #inspect, #read_attribute, #write_attribute

Methods included from Actions

#delete, #destroy, #save, #save!

Methods included from Operations::Comparisons

#!=, #==, #===

Methods included from Fields

#fields

Constructor Details

#initialize(attributes = {}) ⇒ Base

Returns a new instance of Base.



51
52
53
54
55
56
57
# File 'lib/memory_model/base.rb', line 51

def initialize(attributes={})
  unless self.class.collection.is_a? MemoryModel::Collection
    raise MemoryModel::InvalidCollectionError, "#{self.class} does not have an assigned collection"
  end
  fields.set_default_values(self, attributes)
  run_callbacks :initialize
end

Instance Method Details

#initialize_dup(other) ⇒ Object



59
60
61
62
# File 'lib/memory_model/base.rb', line 59

def initialize_dup(other)
  @attributes = other.attributes.dup
  reset_incremented_fields!
end