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