class DataMapper::Resource::PersistenceState
the state of the resource (abstract)
Attributes
model[R]
resource[R]
Public Class Methods
new(resource)
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 12 def initialize(resource) @resource = resource @model = resource.model end
Public Instance Methods
commit()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 30 def commit raise NotImplementedError, "#{self.class}#commit should be implemented" end
delete()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 26 def delete raise NotImplementedError, "#{self.class}#delete should be implemented" end
get(subject, *args)
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 17 def get(subject, *args) subject.get(resource, *args) end
rollback()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 34 def rollback raise NotImplementedError, "#{self.class}#rollback should be implemented" end
set(subject, value)
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 21 def set(subject, value) subject.set(resource, value) self end
Private Instance Methods
add_to_identity_map()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 58 def add_to_identity_map identity_map[resource.key] = resource end
identity_map()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 50 def identity_map @identity_map ||= repository.identity_map(model) end
properties()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 42 def properties @properties ||= model.properties(repository.name) end
relationships()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 46 def relationships @relationships ||= model.relationships(repository.name) end
remove_from_identity_map()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 54 def remove_from_identity_map identity_map.delete(resource.key) end
set_child_key(relationship)
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 68 def set_child_key(relationship) return unless relationship.loaded?(resource) && relationship.respond_to?(:resource_for) set(relationship, get(relationship)) end
set_child_keys()
click to toggle source
# File lib/dm-core/resource/persistence_state.rb, line 62 def set_child_keys relationships.each do |relationship| set_child_key(relationship) end end