Class: CoinSync::BuildTask

Inherits:
Object
  • Object
show all
Defined in:
lib/coinsync/build_task.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ BuildTask

Returns a new instance of BuildTask.



9
10
11
# File 'lib/coinsync/build_task.rb', line 9

def initialize(config)
  @config = config
end

Instance Method Details

#run(output_name, args = []) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/coinsync/build_task.rb', line 13

def run(output_name, args = [])
  if output_name.nil?
    puts "Error: Build task name not given"
    exit 1
  end

  output_class = Outputs.registered[output_name.to_sym]

  if output_class.nil?
    puts "Unknown build task: #{output_name}"
    exit 1
  end

  FileUtils.mkdir_p 'build'

  builder = Builder.new(@config)
  transactions = builder.build_transaction_list

  output = output_class.new(@config, "build/#{output_name}.csv")

  if output.requires_currency_conversion?
    if options = @config.currency_conversion
      converter = CurrencyConversionTask.new(options)
      converter.process_transactions(transactions)
    end
  end

  output.process_transactions(transactions, *args)
end