Sha256: 245fb6608c7a4a713fc31d4edffabe2226091a8b56a5948026a889eef18451db

Contents?: true

Size: 623 Bytes

Versions: 2

Compression:

Stored size: 623 Bytes

Contents

# frozen_string_literal: true

module PgEventstore
  class PgConnection < PG::Connection
    def exec(sql)
      log(sql, [])
      super
    end

    def exec_params(sql, params, ...)
      log(sql, params)
      super
    end

    private

    def log(sql, params)
      return unless PgEventstore.logger&.debug?

      sql = sql.gsub(/\$\d+/).each do |matched|
        value = params[matched[1..].to_i - 1]

        value = type_map_for_queries[value.class]&.encode(value) || value
        value.is_a?(String) ? "'#{value}'" : value
      end unless params&.empty?
      PgEventstore.logger.debug(sql)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pg_eventstore-0.4.0 lib/pg_eventstore/pg_connection.rb
pg_eventstore-0.3.0 lib/pg_eventstore/pg_connection.rb