Class: RailsRedshiftReplicator::Adapters::Generic
- Inherits:
-
Object
- Object
- RailsRedshiftReplicator::Adapters::Generic
- Defined in:
- lib/rails_redshift_replicator/adapters/generic.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#connection ⇒ Object
Returns the AR connection.
-
#initialize(ar_client) ⇒ Generic
constructor
A new instance of Generic.
-
#last_record_query_command(sql) ⇒ String
Id or timestamp.
-
#query_command(sql) ⇒ Object
Executes query using AR Adapter.
-
#write(file_path, query_result) ⇒ Integer
Writes query results to a file.
Constructor Details
#initialize(ar_client) ⇒ Generic
Returns a new instance of Generic.
4 5 6 |
# File 'lib/rails_redshift_replicator/adapters/generic.rb', line 4 def initialize(ar_client) @ar_client = ar_client end |
Instance Method Details
#connection ⇒ Object
Returns the AR connection
9 10 11 |
# File 'lib/rails_redshift_replicator/adapters/generic.rb', line 9 def connection @connection ||= @ar_client end |
#last_record_query_command(sql) ⇒ String
Returns id or timestamp.
20 21 22 |
# 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) ⇒ Object
Executes query using AR Adapter
15 16 17 |
# File 'lib/rails_redshift_replicator/adapters/generic.rb', line 15 def query_command(sql) connection.query sql end |
#write(file_path, query_result) ⇒ Integer
Writes query results to a file
28 29 30 31 32 33 34 35 36 37 |
# 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 |