class EasyMapper::Adapters::PostgreAdapter

Public Class Methods

new( host: '127.0.0.1', port: 5432, database:, user:, password: ) click to toggle source
# File lib/easy_mapper/adapters/postgre_adapter.rb, line 10
def initialize(
    host: '127.0.0.1',
    port: 5432,
    database:,
    user:,
    password:
)

  @connection_options = {
    host: host,
    port: port,
    dbname: database,
    user: user,
    password: password
  }
end

Public Instance Methods

connect() click to toggle source
# File lib/easy_mapper/adapters/postgre_adapter.rb, line 27
def connect
  @connection = PGconn.connect(@connection_options)

  @connection.set_notice_processor do |warning|
    Logger.logger.warn(warning)
  end

  @connection.type_map_for_results =
    PG::BasicTypeMapForResults.new(@connection)
end
execute(query) click to toggle source
# File lib/easy_mapper/adapters/postgre_adapter.rb, line 38
def execute(query)
  Logger.logger.info("Executing query: #{query}")
  Results::PostgreResult.new @connection.exec(query)
end
next_id(table_name) click to toggle source
# File lib/easy_mapper/adapters/postgre_adapter.rb, line 47
def next_id(table_name)
  seq_name = "#{table_name}_id_seq"

  execute(sql_builder.sequence(seq_name).create_unless_exists)

  query = sql_builder.sequence(seq_name).next_val
  execute(query).single_value
end
sql_builder() click to toggle source
# File lib/easy_mapper/adapters/postgre_adapter.rb, line 43
def sql_builder
  Sqlbuilder::Builders::PostgresBuilder.new
end