class ROM::Session::Mapper

@api private

Public Class Methods

build(mapper, tracker) click to toggle source

@api private

# File lib/rom/session/mapper.rb, line 11
def self.build(mapper, tracker)
  new(mapper, tracker, IdentityMap.build)
end

Public Instance Methods

dirty?(object) click to toggle source

@api private

# File lib/rom/session/mapper.rb, line 16
def dirty?(object)
  identity_map.fetch_tuple(identity(object)) != dump(object)
end
load(tuple) click to toggle source

@api private

# File lib/rom/session/mapper.rb, line 21
def load(tuple)
  identity = mapper.identity_from_tuple(tuple)
  identity_map.fetch_object(identity) { load_and_track(identity, tuple) }
end
store_in_identity_map(object) click to toggle source

@api private

# File lib/rom/session/mapper.rb, line 27
def store_in_identity_map(object)
  identity_map.store(identity(object), object, dump(object))
end

Private Instance Methods

load_and_track(identity, tuple) click to toggle source

@api private

# File lib/rom/session/mapper.rb, line 34
def load_and_track(identity, tuple)
  object = mapper.load(tuple)
  tracker.store_persisted(object, self)
  identity_map.store(identity, object, tuple)[identity]
end