class RailsRedshiftReplicator::Adapters::Generic
Public Class Methods
new(ar_client)
click to toggle source
# File lib/rails_redshift_replicator/adapters/generic.rb, line 4 def initialize(ar_client) @ar_client = ar_client end
Public Instance Methods
connection()
click to toggle source
Returns the AR connection
# File lib/rails_redshift_replicator/adapters/generic.rb, line 9 def connection @connection ||= @ar_client end
last_record_query_command(sql)
click to toggle source
@return [String] id or timestamp
# File lib/rails_redshift_replicator/adapters/generic.rb, line 20 def last_record_query_command(sql) connection.exec_query(sql).first['_last_record'] end
query_command(sql)
click to toggle source
Executes query using AR Adapter @param sql [String] sql to execute
# File lib/rails_redshift_replicator/adapters/generic.rb, line 15 def query_command(sql) connection.query sql end
write(file_path, query_result)
click to toggle source
Writes query results to a file @param file_path [String] path to output @param query_result [#each] Resultset from the query_command
@return [Integer] number of records
# File lib/rails_redshift_replicator/adapters/generic.rb, line 28 def write(file_path, query_result) line_number = 0 CSV.open(file_path, "w") do |csv| query_result.each do |row| csv << row.map{ |field| field.is_a?(String) ? field.gsub("\n", " ") : field } line_number+=1 end end line_number end