class ROM::Session

TODO: finish this in 1.1.0

@api private

Attributes

queue[R]
repo[R]
status[R]

Public Class Methods

new(repo) click to toggle source
# File lib/rom/repository/session.rb, line 16
def initialize(repo)
  @repo = repo
  @status = :pending
  initialize_queue!
end

Public Instance Methods

add(changeset) click to toggle source
# File lib/rom/repository/session.rb, line 22
def add(changeset)
  queue << changeset
  self
end
commit!() click to toggle source
# File lib/rom/repository/session.rb, line 27
def commit!
  queue.each(&:commit)

  @status = :success

  self
rescue StandardError => e
  @status = :failure
  raise e
ensure
  initialize_queue!
end
failure?() click to toggle source
# File lib/rom/repository/session.rb, line 48
def failure?
  status.equal?(:failure)
end
pending?() click to toggle source
# File lib/rom/repository/session.rb, line 40
def pending?
  status.equal?(:pending)
end
success?() click to toggle source
# File lib/rom/repository/session.rb, line 44
def success?
  status.equal?(:success)
end

Private Instance Methods

initialize_queue!() click to toggle source
# File lib/rom/repository/session.rb, line 54
def initialize_queue!
  @queue = []
end