Sha256: 4f4241628a0c69b2f0100d26585351f386f64521b8c69556bbb90cb9258c930a
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
# encoding: utf-8 module ROM class Session # Session-specific environment wrapping ROM's environment # # It works exactly the same as ROM::Environment except it returns # session relations # # @api public class Environment < ROM::Environment include Proxy attr_reader :environment, :tracker, :memory private :environment, :tracker, :memory # @api private def self.build(environment, tracker = Tracker.new) new(environment, tracker) end # @api private def initialize(environment, tracker) @environment = environment @tracker = tracker initialize_memory end # Return a relation identified by name # # @param [Symbol] name of a relation # # @return [Session::Relation] rom's relation wrapped by session # # @api public def [](name) memory[name] end # @api private def commit tracker.commit end # @api private def clean? tracker.clean? end private # @api private def initialize_memory @memory = Hash.new { |_, name| memory[name] = build_relation(name) } end # @api private def build_relation(name) Relation.build(environment[name], tracker) end end # Environment end # Session end # ROM
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-session-0.1.1 | lib/rom/session/environment.rb |
rom-session-0.1.0 | lib/rom/session/environment.rb |