Sha256: b648d06aa88f3cad8ef4a94d9b1247c50cc9a082d0606908fa42e1b2710d1e3b

Contents?: true

Size: 738 Bytes

Versions: 6

Compression:

Stored size: 738 Bytes

Contents

module Adhoq
  class Executor
    class ConnectionWrapper
      def initialize
      end

      def select(query)
        with_sandbox do |connection|
          connection.exec_query(query)
        end
      end

      def explain(query)
        with_sandbox do |connection|
          connection.explain(query)
        end
      end

      def with_connection
        connection = Adhoq.config.callablize(:database_connection).call
        yield(connection)
      end

      def with_sandbox
        result = nil
        with_connection do |connection|
          connection.transaction do
            result = yield(connection)
            raise ActiveRecord::Rollback
          end
        end
        result
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
adhoq-1.0.2 lib/adhoq/executor/connection_wrapper.rb
adhoq-1.0.1 lib/adhoq/executor/connection_wrapper.rb
adhoq-1.0.0 lib/adhoq/executor/connection_wrapper.rb
adhoq-0.5.0 lib/adhoq/executor/connection_wrapper.rb
adhoq-0.5.0.beta1 lib/adhoq/executor/connection_wrapper.rb
adhoq-0.4.0 lib/adhoq/executor/connection_wrapper.rb