class PSQLToys::Template::Base
Base
class for templates
Constants
- PGPASS_FILE
Attributes
db_config_proc[R]
`db_config_proc` getter for `Dumps` sub-tools
db_connection_proc[R]
`db_config_proc` getter for `Dumps` sub-tools
db_extensions[R]
`db_config_proc` getter for `Dumps` sub-tools
Public Class Methods
new(db_config_proc:, db_extensions:, db_connection_proc: nil)
click to toggle source
# File lib/psql_toys/template/_base.rb, line 15 def initialize(db_config_proc:, db_extensions:, db_connection_proc: nil) @db_config_proc = db_config_proc @db_connection_proc = db_connection_proc @db_extensions = db_extensions end
Public Instance Methods
confirm(prompt)
click to toggle source
# File lib/psql_toys/template/_base.rb, line 50 def confirm(prompt) require 'highline' highline = HighLine.new highline.choose do |menu| menu.layout = :one_line menu.prompt = prompt menu.choice(:yes) { nil } menu.choice(:no) { abort 'OK' } end end
db_access(superuser: false)
click to toggle source
# File lib/psql_toys/template/_base.rb, line 25 def db_access(superuser: false) user = superuser ? db_config.fetch(:superuser, 'postgres') : db_config[:user] { '-U' => user, '-h' => db_config[:host] } .compact .map { |key, value| "#{key} #{value}" } .join(' ') end
db_config()
click to toggle source
# File lib/psql_toys/template/_base.rb, line 21 def db_config db_config_proc.call end
db_connection()
click to toggle source
# File lib/psql_toys/template/_base.rb, line 34 def db_connection db_connection_proc.call end
update_pgpass()
click to toggle source
# File lib/psql_toys/template/_base.rb, line 40 def update_pgpass pgpass_lines = File.exist?(PGPASS_FILE) ? File.read(PGPASS_FILE).split($RS) : [] return if pgpass_lines&.include? pgpass_line File.write PGPASS_FILE, pgpass_lines.push(pgpass_line, nil).join($RS) File.chmod(0o600, PGPASS_FILE) end
Private Instance Methods
pgpass_line()
click to toggle source
# File lib/psql_toys/template/_base.rb, line 66 def pgpass_line db_config .fetch_values(:host, :port, :database, :user, :password) { |_key| '*' } .join(':') end