Class: Appydave::Tools::BankReconciliation::Clean::CleanTransactions
- Inherits:
-
Object
- Object
- Appydave::Tools::BankReconciliation::Clean::CleanTransactions
- Includes:
- Configuration::Configurable, Debuggable, KLog::Logging
- Defined in:
- lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb
Overview
Clean transactions
Instance Attribute Summary collapse
-
#output_folder ⇒ Object
readonly
Returns the value of attribute output_folder.
-
#transaction_folder ⇒ Object
readonly
Returns the value of attribute transaction_folder.
-
#transactions ⇒ Object
readonly
Returns the value of attribute transactions.
Attributes included from Debuggable
Instance Method Summary collapse
- #clean_transactions(input_globs, output_file) ⇒ Object
-
#initialize(transaction_folder: nil, output_folder: nil, debug: false) ⇒ CleanTransactions
constructor
(config_file).
Methods included from Debuggable
#log_info, #log_kv, #log_subheading
Methods included from Configuration::Configurable
Constructor Details
#initialize(transaction_folder: nil, output_folder: nil, debug: false) ⇒ CleanTransactions
(config_file)
20 21 22 23 24 25 26 27 28 |
# File 'lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb', line 20 def initialize(transaction_folder: nil, output_folder: nil, debug: false) @debug = debug # needs to use config.bank_reconciliation.transaction_folder transaction_folder ||= '/Volumes/Expansion/Sync/bank-reconciliation/original-transactions' output_folder ||= File.join(transaction_folder, 'clean') @transaction_folder = transaction_folder @output_folder = output_folder end |
Instance Attribute Details
#output_folder ⇒ Object (readonly)
Returns the value of attribute output_folder.
16 17 18 |
# File 'lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb', line 16 def output_folder @output_folder end |
#transaction_folder ⇒ Object (readonly)
Returns the value of attribute transaction_folder.
15 16 17 |
# File 'lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb', line 15 def transaction_folder @transaction_folder end |
#transactions ⇒ Object (readonly)
Returns the value of attribute transactions.
17 18 19 |
# File 'lib/appydave/tools/bank_reconciliation/clean/clean_transactions.rb', line 17 def transactions @transactions end |
Instance Method Details
#clean_transactions(input_globs, output_file) ⇒ Object
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/clean_transactions.rb', line 30 def clean_transactions(input_globs, output_file) log_info("Starting transaction cleaning with input patterns: #{input_globs}") raw_transactions = grab_raw_transactions(input_globs) log_info("Total raw transactions collected: #{raw_transactions.size}") transactions, duplicates_count = deduplicate_across_files(raw_transactions) log_info("Duplicates found and removed: #{duplicates_count}") transactions = Mapper.new.map(transactions) log_info('Transactions mapped to chart of accounts and bank accounts') log_kv 'Deduped consolidated transactions', duplicates_count if duplicates_count.positive? save_to_csv(transactions, output_file) csv_to_clipboard(output_file) @transactions = transactions end |