class RabbotDb::PgAdapter
Attributes
Public Class Methods
Source
# File lib/rabbot_db/pg_adapter.rb, line 14 def initialize(connection) @connection = connection @last_insert_id = nil @last_changes = 0 end
Public Instance Methods
Source
# File lib/rabbot_db/pg_adapter.rb, line 20 def execute(sql, params = []) sql = Adapter.normalize_sql(sql) result = @connection.exec_params(sql, Array(params)) @last_changes = Adapter.row_count(result) if sql.match?(/\A\s*INSERT/i) && sql.match?(/RETURNING\s+id/i) && result.ntuples.positive? @last_insert_id = result[0]["id"].to_i end ResultRows.new(result) end
Source
# File lib/rabbot_db/pg_adapter.rb, line 30 def get_first_row(sql, params = []) rows = execute(sql, params) rows.first end
Source
# File lib/rabbot_db/pg_adapter.rb, line 35 def get_first_value(sql, params = []) row = get_first_row(sql, params) return nil unless row row.values.first end
Source
# File lib/rabbot_db/pg_adapter.rb, line 42 def last_insert_row_id @last_insert_id end
Source
# File lib/rabbot_db/pg_adapter.rb, line 54 def transaction @connection.exec("BEGIN") yield self @connection.exec("COMMIT") rescue StandardError @connection.exec("ROLLBACK") raise end