module PgSync::Utils
Constants
- COLOR_CODES
Public Instance Methods
colorize(message, color)
click to toggle source
# File lib/pgsync/utils.rb, line 14 def colorize(message, color) if output.tty? "\e[#{COLOR_CODES[color]}m#{message}\e[0m" else message end end
confirm_tables_exist(data_source, tasks, description)
click to toggle source
# File lib/pgsync/utils.rb, line 38 def confirm_tables_exist(data_source, tasks, description) tasks.map(&:table).each do |table| unless data_source.table_exists?(table) raise Error, "Table not found in #{description}: #{table}" end end end
db_config_file(db)
click to toggle source
# File lib/pgsync/utils.rb, line 34 def db_config_file(db) ".pgsync-#{db}.yml" end
deprecated(message)
click to toggle source
# File lib/pgsync/utils.rb, line 26 def deprecated(message) warning "[DEPRECATED] #{message}" end
escape(value)
click to toggle source
# File lib/pgsync/utils.rb, line 74 def escape(value) if value.is_a?(String) "'#{quote_string(value)}'" else value end end
first_schema()
click to toggle source
# File lib/pgsync/utils.rb, line 46 def first_schema @first_schema ||= source.search_path.find { |sp| sp != "pg_catalog" } end
friendly_name(table)
click to toggle source
# File lib/pgsync/utils.rb, line 54 def friendly_name(table) if table.schema == first_schema table.name else table.full_name end end
log(message = nil)
click to toggle source
# File lib/pgsync/utils.rb, line 10 def log(message = nil) output.puts message end
monotonic_time()
click to toggle source
# File lib/pgsync/utils.rb, line 87 def monotonic_time Process.clock_gettime(Process::CLOCK_MONOTONIC) end
output()
click to toggle source
# File lib/pgsync/utils.rb, line 30 def output $stderr end
quote_ident(value)
click to toggle source
# File lib/pgsync/utils.rb, line 70 def quote_ident(value) PG::Connection.quote_ident(value) end
quote_ident_full(ident)
click to toggle source
# File lib/pgsync/utils.rb, line 62 def quote_ident_full(ident) if ident.is_a?(Table) || ident.is_a?(Sequence) [quote_ident(ident.schema), quote_ident(ident.name)].join(".") else # temp table names are strings quote_ident(ident) end end
quote_string(s)
click to toggle source
activerecord
# File lib/pgsync/utils.rb, line 83 def quote_string(s) s.gsub(/\\/, '\&\&').gsub(/'/, "''") end
task_name(task)
click to toggle source
# File lib/pgsync/utils.rb, line 50 def task_name(task) friendly_name(task.table) end
warning(message)
click to toggle source
# File lib/pgsync/utils.rb, line 22 def warning(message) log colorize(message, :yellow) end