Sha256: e144f6e53092ad88ef0589f820cf290bc30b9224addf2714a5d1a996cbb2ff69
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
# encoding: utf-8 module ROM class Session # @api private class Tracker attr_reader :objects, :changelog private :objects, :changelog # @api private def initialize @objects = {} @changelog = [] end # @api private def commit @changelog.each { |state| update(state.commit) } @changelog = [] end # @api private def fetch(identity) @objects.fetch(identity) { raise ObjectNotTrackedError, identity } end # @api private def include?(identity) @objects.key?(identity) end # @api private def clean? changelog.empty? end # @api private def queue(state) @changelog << state update(state) end # @api private def update(state) @objects[state.identity] = state end # @api private def store_transient(object, mapper) update(State::Transient.new(object, mapper)) end # @api private def store_persisted(object, mapper) update(State::Persisted.new(object, mapper)) end end # Tracker end # Session end # ROM
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rom-0.2.0 | lib/rom/session/tracker.rb |