class BankAccountStatement::App
Public Class Methods
new(opts = {})
click to toggle source
# File lib/bank-account-statement/app.rb, line 8 def initialize(opts = {}) @in = opts[:in].to_s @in_format = BankAccountStatement::Inputs::Base.formats[opts[:in_format]] raise "IN_FORMAT unknown" unless @in_format @out = opts[:out].to_s raise "OUT not directory" unless Dir.exist?(@out) @out_format = BankAccountStatement::Outputs::Base.formats[opts[:out_format]] raise "OUT_FORMAT unknown" unless @out_format @logger = opts[:logger] || Logger.new(nil) end
Public Instance Methods
run()
click to toggle source
# File lib/bank-account-statement/app.rb, line 23 def run Dir.glob(@in) do |f_in| f_o_n = File.basename(f_in, @in_format::FILE_EXT) + @out_format::FILE_EXT f_out = File.join(@out, f_o_n) if File.exist?(f_out) @logger.warn { "SKIPPED\t#{f_in}" } else begin _convert(f_in, f_out) @logger.info { "CONVERTED\t#{f_in}\t#{f_out}" } rescue @logger.error { "ERRORED\t#{f_in}" } raise end end end end
Private Instance Methods
_convert(file_in, file_out)
click to toggle source
# File lib/bank-account-statement/app.rb, line 44 def _convert(file_in, file_out) file_in_c = File.read(file_in) in_f = @in_format.new(file_in_c) data = in_f.parse out_f = @out_format.new(data) out_f_c = out_f.generate File.write(file_out, out_f_c) end