Sha256: 5b42de6a01bd0dc05256f10dc12b366c1b6cb368936f5a358ba718798d914a89

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

# vi: ts=2:sts=2:et:sw=2

require 'lims-core/persistence/store'
require 'lims-core/persistence/sequel/session'
require 'sequel'

module Lims::Core
  module Persistence
    module Sequel
      # An Sequel::Store, ie an wrapper around a database
      # using the sequel gem
      class Store < Persistence::Store
        attr_reader :database
        # @attribute

        # Create a store with a Sequel::Database
        # We don't wrap for now the creation  of the database
        # @param [Sequel::Database] type underlying database
        def initialize(database, *args)
          raise RuntimeError unless database.is_a?(::Sequel::Database)
          @database = database
          super(*args)
          @dirty_attribute_strategy = DIRTY_ATTRIBUTE_STRATEGY_SHA1
        end

        # Execute given block within a transaction
        # and create a session object needed to update
        # revisionned table.
        def transaction
          database.transaction do
            super
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lims-core-3.2.3 lib/lims-core/persistence/sequel/store.rb