class PgDice::DatabaseConnection

Wrapper class around database connection handlers

Attributes

dry_run[R]
logger[R]
query_executor[R]

Public Class Methods

new(logger:, query_executor:, dry_run: false) click to toggle source
# File lib/pgdice/database_connection.rb, line 11
def initialize(logger:, query_executor:, dry_run: false)
  @logger = logger
  @dry_run = dry_run
  @query_executor = query_executor
end

Public Instance Methods

execute(query) click to toggle source
# File lib/pgdice/database_connection.rb, line 17
def execute(query)
  query = squish(query)

  if blank?(query) || dry_run
    logger.debug { "DatabaseConnection skipping query. Query: '#{query}'. Dry run: #{dry_run}" }
    return PgDice::PgResponse.new
  end

  logger.debug { "DatabaseConnection to execute query: #{query}" }
  PgDice::LogHelper.log_duration('Executing query', logger) do
    query_executor.call(query)
  end
end