class CoinSync::ImportTask

Public Class Methods

new(config) click to toggle source
# File lib/coinsync/import_task.rb, line 7
def initialize(config)
  @config = config
end

Public Instance Methods

run(selected = nil, except = nil) click to toggle source
# File lib/coinsync/import_task.rb, line 11
def run(selected = nil, except = nil)
  @config.filtered_sources(selected, except).each do |key, source|
    importer = source.importer
    filename = source.filename

    if importer.respond_to?(:can_import?)
      if importer.can_import?(:transactions)
        if filename.nil?
          raise "No filename specified for '#{key}', please add a 'file' parameter."
        end

        print "[#{key}] Importing transactions... "

        FileUtils.mkdir_p(File.dirname(filename))
        importer.import_transactions(filename)

        puts "√"
      else
        puts "[#{key}] Skipping import"
      end
    end
  end

  puts "Done."
end