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