Class: Utils::Postgres::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/bas/utils/postgres/connection.rb

Overview

This module is a PostgresDB utility to establish connections to a Postgres database and execute raw or parameterized queries.

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Connection

Returns a new instance of Connection.



11
12
13
# File 'lib/bas/utils/postgres/connection.rb', line 11

def initialize(params)
  @connection = PG::Connection.new(params)
end

Instance Method Details

#finishObject



28
29
30
31
# File 'lib/bas/utils/postgres/connection.rb', line 28

def finish
  @connection&.finish
  @connection = nil
end

#query(query) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bas/utils/postgres/connection.rb', line 15

def query(query)
  results = if query.is_a? String
              @connection.exec(query)
            else
              validate_query(query)

              sentence, params = query
              @connection.exec_params(sentence, params)
            end

  results.map { |result| result.transform_keys(&:to_sym) }
end