Class: DataMapper::Resource::PersistenceState::Dirty

Inherits:
Persisted show all
Defined in:
lib/dm-core/resource/persistence_state/dirty.rb

Overview

a persisted/dirty resource

Instance Attribute Summary

Attributes inherited from DataMapper::Resource::PersistenceState

#model, #resource

Instance Method Summary collapse

Methods inherited from Persisted

#get

Methods inherited from DataMapper::Resource::PersistenceState

#get, #initialize

Methods included from Equalizer

#equalize

Constructor Details

This class inherits a constructor from DataMapper::Resource::PersistenceState

Instance Method Details

#commitObject



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/dm-core/resource/persistence_state/dirty.rb', line 17

def commit
  remove_from_identity_map
  set_child_keys
  assert_valid_attributes
  update_resource
  reset_original_attributes
  reset_resource_key
  Clean.new(resource)
ensure
  add_to_identity_map
end

#deleteObject



12
13
14
15
# File 'lib/dm-core/resource/persistence_state/dirty.rb', line 12

def delete
  reset_resource
  Deleted.new(resource)
end

#original_attributesObject



34
35
36
# File 'lib/dm-core/resource/persistence_state/dirty.rb', line 34

def original_attributes
  @original_attributes ||= {}
end

#rollbackObject



29
30
31
32
# File 'lib/dm-core/resource/persistence_state/dirty.rb', line 29

def rollback
  reset_resource
  Clean.new(resource)
end

#set(subject, value) ⇒ Object



6
7
8
9
10
# File 'lib/dm-core/resource/persistence_state/dirty.rb', line 6

def set(subject, value)
  track(subject, value)
  super
  original_attributes.empty? ? Clean.new(resource) : self
end