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