module PostgresUpsert
Public Class Methods
read_adapter(source)
click to toggle source
# File lib/postgres_upsert.rb, line 22 def read_adapter(source) if [StringIO, File].include?(source.class) ReadAdapters::IOAdapter elsif [String].include?(source.class) ReadAdapters::FileAdapter elsif source < ActiveRecord::Base ReadAdapters::ActiveRecordAdapter else raise "Source must be a Filename string, StringIO of data, or a ActiveRecord Class." end end
write(destination, source, options = {})
click to toggle source
# File lib/postgres_upsert.rb, line 16 def write(destination, source, options = {}) read_adapter = read_adapter(source).new(source, options) write_adapter = write_adapter(destination).new(destination, options) Writer.new(destination, write_adapter, read_adapter, options).write end
write_adapter(destination)
click to toggle source
# File lib/postgres_upsert.rb, line 34 def write_adapter(destination) if [String].include?(destination.class) WriteAdapters::TableAdapter elsif destination <= ActiveRecord::Base WriteAdapters::ActiveRecordAdapter # elsif source < ActiveRecord::Base && destination < ActiveRecord::Base #ModelToModelAdapter else raise "Destination must be an ActiveRecord class or a table name string" end end