class ObjectFramework::Memory::Transaction
Public Class Methods
Source
# File lib/object_framework/memory/storage.rb, line 40 def initialize(storage:, tables:, revision:, mode:) super(mode:) @storage, @tables, @revision, @dirty = storage, tables, revision, false end
Calls superclass method
Public Instance Methods
Source
# File lib/object_framework/memory/storage.rb, line 79 def commit active! @storage.publish(@tables, revision: @revision) if @dirty @state = :committed rescue Conflict @state = :rolled_back @tables.clear raise end
Source
# File lib/object_framework/memory/storage.rb, line 72 def delete(table, id) writable! raise NotFound, "Unknown identity" unless rows(table).key?(id) rows(table).delete(id) @dirty = true end
Source
# File lib/object_framework/memory/storage.rb, line 45 def find(table, id) active! row = rows(table)[id] Values.detach(row) if row end
Source
# File lib/object_framework/memory/storage.rb, line 56 def insert(table, row) writable! value = row_value(row) raise Duplicate, "Duplicate identity" if rows(table).key?(value[:id]) rows(table)[value[:id]] = value @dirty = true value[:id] end
Source
# File lib/object_framework/memory/storage.rb, line 51 def query(query) active! Values.detach(query.apply(rows(query.table).values)) end
Source
# File lib/object_framework/memory/storage.rb, line 65 def update(table, id, row) writable! raise NotFound, "Unknown identity" unless rows(table).key?(id) rows(table)[id] = row_value(row, id:) @dirty = true end