Class: Appydave::Tools::BankReconciliation::Clean::ReadTransactions
- Inherits:
-
Object
- Object
- Appydave::Tools::BankReconciliation::Clean::ReadTransactions
- Defined in:
- lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb
Overview
Read transactions from a CSV file
Constant Summary collapse
- WISE_HEADER_PREFIX =
'ID,Status,Direction,"Created on","Finished on","Source fee amount",' \ '"Source fee currency","Target fee amount","Target fee currency","Source name",' \ '"Source amount (after fees)","Source currency","Target name",' \ '"Target amount (after fees)","Target currency","Exchange rate",Reference,Batch'
- PAYPAL_HEADER_PREFIX =
'"Date","Time","Time zone","Name","Type","Status","Currency",' \ '"Amount","Fees","Total","Exchange Rate","Receipt ID","Balance",' \ '"Transaction ID","Item Title"'
- COMMONWEALTH_SIMPLE_HEADER =
Exact match — short header risks start_with? collision with future formats
'Date,Amount,Description,Balance'
Instance Attribute Summary collapse
-
#platform ⇒ Object
readonly
Returns the value of attribute platform.
-
#transactions ⇒ Object
readonly
Returns the value of attribute transactions.
Instance Method Summary collapse
-
#initialize(file) ⇒ ReadTransactions
constructor
A new instance of ReadTransactions.
- #read ⇒ Object
Constructor Details
#initialize(file) ⇒ ReadTransactions
Returns a new instance of ReadTransactions.
23 24 25 |
# File 'lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb', line 23 def initialize(file) @file = file end |
Instance Attribute Details
#platform ⇒ Object (readonly)
Returns the value of attribute platform.
20 21 22 |
# File 'lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb', line 20 def platform @platform end |
#transactions ⇒ Object (readonly)
Returns the value of attribute transactions.
21 22 23 |
# File 'lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb', line 21 def transactions @transactions end |
Instance Method Details
#read ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/appydave/tools/bank_reconciliation/clean/read_transactions.rb', line 27 def read csv_lines = File.read(@file).lines csv_lines[0] = csv_lines[0].sub("\xEF\xBB\xBF", '') if csv_lines[0]&.start_with?("\xEF\xBB\xBF") @platform = detect_platform(csv_lines) case platform when :bankwest read_bankwest(csv_lines) when :bankwest2 read_bankwest2(csv_lines) when :commonwealth1 read_commonwealth1(csv_lines) when :wise read_wise(csv_lines) when :paypal read_paypal(csv_lines) when :commonwealth_simple read_commonwealth_simple(csv_lines) else raise Appydave::Tools::Error, 'Unknown platform X' end end |