class TrainPlugins::Pgsql::Connection
Public Class Methods
new(options)
click to toggle source
Calls superclass method
# File lib/train-pgsql/connection.rb, line 7 def initialize(options) super(options) enable_cache(:command) end
Public Instance Methods
close()
click to toggle source
# File lib/train-pgsql/connection.rb, line 18 def close return if @connection.nil? logger.info format('[Pgsql] Closed connection to %s:%d', @options[:host], @options[:port]) @connection.finish ensure @connection = nil end
connect()
click to toggle source
# File lib/train-pgsql/connection.rb, line 55 def connect logger.info format('[Pgsql] Opening connection to %s:%d', @options[:host], @options[:port]) @connection = PG::Connection.new( host: @options[:host], port: @options[:port], user: @options[:user], password: @options[:password], dbname: @options[:database] ) @connection end
connection()
click to toggle source
# File lib/train-pgsql/connection.rb, line 51 def connection @connection ||= connect end
platform()
click to toggle source
# File lib/train-pgsql/connection.rb, line 12 def platform Train::Platforms.name('pgsql').in_family('sql') force_platform!('pgsql', release: TrainPlugins::Pgsql::VERSION) end
run_command_via_connection(query)
click to toggle source
# File lib/train-pgsql/connection.rb, line 31 def run_command_via_connection(query) stdout = '' stderr = '' exit_status = 0 logger.debug format('[Pgsql] Sending command (%s) to %s:%d', query, @options[:host], @options[:port]) begin connection.exec(query) do |result| stdout = { 'fields' => result.fields, 'values' => result.values } # stdout = result.values end rescue PG::Error => e stderr = e.message end CommandResult.new(stdout, stderr, exit_status) end
uri()
click to toggle source
# File lib/train-pgsql/connection.rb, line 27 def uri "pgsql://#{options[:user]}@#{@options[:host]}:#{@options[:port]}/#{@options[:database]}" end