class ROM::Session
Session
namespace
Session
with IdentityMap
and state-tracking functionality
@example
env.session do |session| user = session[:users].new(id: 1, name: 'Jane') session[:users].save(user) session.flush end
@api public
Constants
- VERSION
Public Class Methods
start(environment) { |new(build)| ... }
click to toggle source
Start a new session
@example
ROM::Session.start(env) do |session| user = session[:users].new(name: 'Jane') session[:users].save(user) session[:users].flush end
@param [ROM::Environment] rom’s environment
@yieldparam [Session::Environment]
@api public
# File lib/rom/session.rb, line 36 def self.start(environment) yield(new(Environment.build(environment))) end
Public Instance Methods
[](relation_name)
click to toggle source
Return a session relation identified by name
@param [Symbol] relation name
@return [Session::Relation]
@api public
# File lib/rom/session.rb, line 47 def [](relation_name) environment[relation_name] end
clean?()
click to toggle source
Return if there are any pending state changes
@return [Boolean]
@api public
# File lib/rom/session.rb, line 66 def clean? environment.clean? end
flush()
click to toggle source
Flush this session committing all the state changes
@return [Session]
@api public
# File lib/rom/session.rb, line 56 def flush environment.commit self end