class Baza::Driver::Pg
Attributes
conn[R]
Public Class Methods
args()
click to toggle source
# File lib/baza/driver/pg.rb, line 20 def self.args [{ label: "Host", name: "host" }, { label: "Port", name: "port" }, { label: "Username", name: "user" }, { label: "Password", name: "pass" }, { label: "Database", name: "db" }] end
from_object(args)
click to toggle source
# File lib/baza/driver/pg.rb, line 6 def self.from_object(args) if args[:object].class.name == "PG::Connection" return { type: :success, args: { type: :pg, conn: args[:object] } } end nil end
new(db)
click to toggle source
Calls superclass method
Baza::BaseSqlDriver::new
# File lib/baza/driver/pg.rb, line 39 def initialize(db) super @sep_database = '"' @sep_table = '"' @sep_col = '"' @sep_index = '"' if db.opts[:conn] @conn = db.opts.fetch(:conn) elsif db.opts[:db] reconnect end end
Public Instance Methods
close()
click to toggle source
# File lib/baza/driver/pg.rb, line 91 def close @conn.close end
connected?()
click to toggle source
# File lib/baza/driver/pg.rb, line 54 def connected? @conn ? true : false end
escape(string)
click to toggle source
# File lib/baza/driver/pg.rb, line 58 def escape(string) if @conn @conn.escape_string(string.to_s) else PG::Connection.escape_string(string.to_s) end end
query(sql)
click to toggle source
# File lib/baza/driver/pg.rb, line 80 def query(sql) Baza::Driver::Pg::Result.new(self, @conn.exec(sql)) end
query_ubuf(sql)
click to toggle source
# File lib/baza/driver/pg.rb, line 84 def query_ubuf(sql) @conn.send_query(sql) @conn.set_single_row_mode result = @conn.get_result Baza::Driver::Pg::Result.new(self, result, unbuffered: true) end
reconnect()
click to toggle source
# File lib/baza/driver/pg.rb, line 66 def reconnect require "pg" unless ::Object.const_defined?(:PG) close if @conn && !@conn.finished? args = {dbname: db.opts.fetch(:db)} args[:port] = db.opts.fetch(:port) if db.opts[:port] args[:host] = db.opts.fetch(:host) if db.opts[:host] args[:user] = db.opts.fetch(:user) if db.opts[:user] args[:password] = db.opts.fetch(:pass) if db.opts[:pass] @conn = PG::Connection.new(args) end