Sha256: 12f58c3992ddae506c4dec2209940680550d95bf49c29983ff6916630a16f072

Contents?: true

Size: 1.96 KB

Versions: 9

Compression:

Stored size: 1.96 KB

Contents

module Arel
  module Middleware
    module PostgreSQLAdapter
      def initialize(*args)
        Arel.middleware.none do
          super(*args)
        end
      end

      def execute(sql, name = nil)
        super(sql, name)
      end

      alias parent_execute execute

      # rubocop:disable Lint/DuplicateMethods
      def execute(sql, name = nil)
        Arel::Middleware.current_chain.execute(sql) do |processed_sql|
          Arel::Middleware::Result.create(
            data: parent_execute(processed_sql, name),
            from: Arel::Middleware::PGResult,
            to: Arel::Middleware::PGResult,
          )
        end
      end
      # rubocop:enable Lint/DuplicateMethods

      def query(sql, name = nil)
        Arel::Middleware.current_chain.execute(sql) do |processed_sql|
          # NOTE: we're not calling `super` here, but execute.
          # The `query` super does not return the columns, like the other methods.
          # As we want the result objects to be the same, we call execute instead.
          Arel::Middleware::Result.create(
            data: parent_execute(processed_sql, name),
            from: Arel::Middleware::PGResult,
            to: Arel::Middleware::ArrayResult,
          )
        end
      end

      def exec_no_cache(sql, name, binds)
        Arel::Middleware.current_chain.execute(sql, binds) do |processed_sql, processed_binds|
          Arel::Middleware::Result.create(
            data: super(processed_sql, name, processed_binds),
            from: Arel::Middleware::PGResult,
            to: Arel::Middleware::PGResult,
          )
        end
      end

      def exec_cache(sql, name, binds)
        Arel::Middleware.current_chain.execute(sql, binds) do |processed_sql, processed_binds|
          Arel::Middleware::Result.create(
            data: super(processed_sql, name, processed_binds),
            from: Arel::Middleware::PGResult,
            to: Arel::Middleware::PGResult,
          )
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
arel_toolkit-0.4.9 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.8 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.7 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.6 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.5 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.4 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.3 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.2 lib/arel/middleware/postgresql_adapter.rb
arel_toolkit-0.4.1 lib/arel/middleware/postgresql_adapter.rb