Sha256: 49d4b49abffede6783a5a6d29b6acd20be7e3cb3d23003d1bc8ebb97b28e6e3d

Contents?: true

Size: 1004 Bytes

Versions: 8

Compression:

Stored size: 1004 Bytes

Contents

module SandthornDriverSequel
  class Storage
    # = Storage
    # Abstracts access to contextualized database tables.
    #
    # == Rationale
    # Provide object-oriented access to the different tables to other objects.
    # Make it unnecessary for them to know about the current context.
    include EventStoreContext

    attr_reader :db

    def initialize(db, context)
      @db = db
      @context = context
    end

    # Returns a Sequel::Model for accessing aggregates
    def aggregates
      Class.new(Sequel::Model(aggregates_table))
    end

    # Returns a Sequel::Model for accessing events
    def events
      Class.new(Sequel::Model(events_table))
    end

    # Returns a Sequel::Model for accessing snapshots
    def snapshots
      Class.new(Sequel::Model(snapshots_table))
    end

    def aggregates_table
      db[aggregates_table_name]
    end

    def events_table
      db[events_table_name]
    end

    def snapshots_table
      db[snapshots_table_name]
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
sandthorn_driver_sequel-3.2.1 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-3.2.0 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-3.1.0 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-3.0.0 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-2.1.1 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-2.1.0 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-2.0.1 lib/sandthorn_driver_sequel/storage.rb
sandthorn_driver_sequel-2.0.0 lib/sandthorn_driver_sequel/storage.rb