Sha256: 7c445f379253fcc2c6dcafb3763be597a34ddf82577a301398bb55ce612e47ca

Contents?: true

Size: 1.87 KB

Versions: 5

Compression:

Stored size: 1.87 KB

Contents

#!/usr/bin/env ruby
require 'csv'
require 'open-uri'
require 'pry'
require 'securerandom'

csv_url = ARGV[0]

spec_order = %i[
  index
  due_on
  crd_beginning_of_period
  crd_end_of_period
  period_theoric_interests
  delta_interests
  accrued_delta_interests
  amount_to_add
  period_interests
  period_capital
  total_paid_capital_end_of_period
  total_paid_interests_end_of_period
  period_amount_to_pay
  due_interests_beginning_of_period
  due_interests_end_of_period
]

column_getter = {
  index: proc { |r| r['t'].to_i },
  due_on: proc { |r| r['date'] },
  crd_beginning_of_period: proc { |r| r['crd_start'].gsub(',', '.').to_f },
  crd_end_of_period: proc { |r| r['crd_end'].gsub(',', '.').to_f },
  period_theoric_interests: proc { |r| r['period_theoric_interests'].gsub(',', '.').to_f },
  delta_interests: proc { |r| r['delta_interests'].gsub(',', '.').to_f },
  accrued_delta_interests: proc { |r| r['cumulated_delta_interests'].gsub(',', '.').to_f },
  amount_to_add: proc { |r| r['amount_to_add'].gsub(',', '.').to_f },
  period_interests: proc { |r| r['period_interests'].gsub(',', '.').to_f },
  period_capital: proc { |r| r['period_capital'].gsub(',', '.').to_f },
  total_paid_capital_end_of_period: proc { |r| r['total_capital_paid'].gsub(',', '.').to_f },
  total_paid_interests_end_of_period: proc { |r| r['total_interests_paid'].gsub(',', '.').to_f },
  period_amount_to_pay: proc { |r| r['period_total'].gsub(',', '.').to_f },
  due_interests_beginning_of_period: proc { |r| r['due_interests_beginning_of_period'].gsub(',', '.').to_f },
  due_interests_end_of_period: proc { |r| r['due_interests_end_of_period'].gsub(',', '.').to_f }
}

data = CSV.parse(URI.open(csv_url), headers: true).map(&:to_hash)

CSV.open("./spec/fixtures/new/#{SecureRandom.alphanumeric}.csv", 'w') do |csv|
  data.each do |row|
    csv << spec_order.map { |column| column_getter[column].call(row) }
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
loan_creator-0.12.1 scripts/convert_export_to_spec.rb
loan_creator-0.12.0 scripts/convert_export_to_spec.rb
loan_creator-0.11.0 scripts/convert_export_to_spec.rb
loan_creator-0.10.0 scripts/convert_export_to_spec.rb
loan_creator-0.9.1 scripts/convert_export_to_spec.rb