class ROM::Session::Tracker
@api private
Attributes
changelog[R]
objects[R]
Public Class Methods
new()
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 12 def initialize @objects = {} @changelog = [] end
Public Instance Methods
clean?()
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 34 def clean? changelog.empty? end
commit()
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 18 def commit @changelog.each { |state| update(state.commit) } @changelog = [] end
fetch(object)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 24 def fetch(object) @objects.fetch(object.__id__) { raise ObjectNotTrackedError, object } end
include?(object)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 29 def include?(object) @objects.key?(object.__id__) end
queue(state)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 39 def queue(state) @changelog << state update(state) end
store_persisted(object, mapper)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 55 def store_persisted(object, mapper) store(object, State::Persisted.new(object, mapper)) end
store_transient(object, mapper)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 50 def store_transient(object, mapper) store(object, State::Transient.new(object, mapper)) end
update(state)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 45 def update(state) store(state.object, state) end
Private Instance Methods
store(object, state)
click to toggle source
@api private
# File lib/rom/session/tracker.rb, line 62 def store(object, state) @objects[object.__id__] = state end