Sha256: 3e7fd15dd6270cf4ca1de670febeccf92216168e8e7413e1f952821804542292

Contents?: true

Size: 1.3 KB

Versions: 2

Compression:

Stored size: 1.3 KB

Contents

require "mongo"
require "active_support/core_ext" # needed for Hash#diff
require "csv"

require_relative "assimilate/version"

require_relative "assimilate/catalog"
require_relative "assimilate/batch"
require_relative "assimilate/extender"

require_relative "assimilate/command"

module Assimilate
  def self.load(filename, opts = {})
    begin
      catalog = Catalog.new(:config => opts[:config])
      batcher = catalog.start_batch(opts.merge(:filename => filename))

      records = CSV.read(filename, :headers => true)
      records.each do |rec|
        batcher << rec
      end
      if opts[:commit]
        batcher.commit
      else
        $stderr.puts "suppressing data commit"
      end
      batcher.stats
    # TODO explicit handling for Assimilate exceptions - when code is stable
    # rescue Assimilate::DuplicateImportError => e
    #   $stderr.puts e.message
    #   exit 1
    end
  end

  def self.extend_data(filename, opts = {})
    begin
      catalog = Catalog.new(:config => opts[:config])
      extender = catalog.extend_data(opts)
      records = CSV.read(filename, :headers => true)
      records.each do |rec|
        extender << rec
      end
      if opts[:commit]
        extender.commit
      else
        $stderr.puts "suppressing data commit"
      end
      extender.stats
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
assimilate-0.0.3 lib/assimilate.rb
assimilate-0.0.2 lib/assimilate.rb