Module: ImportManager::StatusLog
- Included in:
- ImportManager
- Defined in:
- lib/import_manager/status_log.rb
Overview
Methods to collect errors and report the status of the import
Instance Method Summary collapse
- #error_list ⇒ Object
- #errors(row = nil) ⇒ Object
- #errors?(row = nil) ⇒ Boolean
- #errors_by_row_index ⇒ Object
- #import_status ⇒ Object
- #log_status ⇒ Object
- #pick_up_card_errors(card = nil) ⇒ Object
- #report(key, msg) ⇒ Object
-
#report_error(msg) ⇒ Object
used by CSVRow objects.
Instance Method Details
#error_list ⇒ Object
62 63 64 65 66 67 |
# File 'lib/import_manager/status_log.rb', line 62 def error_list @import_status[:errors].each_with_object([]) do |(index, errors), list| next if errors.empty? list << "##{index + 1}: #{errors.join('; ')}" end end |
#errors(row = nil) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/import_manager/status_log.rb', line 54 def errors row=nil if row import_status.dig(:errors, row.row_index) || [] else import_status[:errors] || {} end end |
#errors?(row = nil) ⇒ Boolean
46 47 48 49 50 51 52 |
# File 'lib/import_manager/status_log.rb', line 46 def errors? row=nil if row errors(row).present? else errors.values.flatten.present? end end |
#errors_by_row_index ⇒ Object
29 30 31 32 33 |
# File 'lib/import_manager/status_log.rb', line 29 def errors_by_row_index @import_status[:errors].each do |index, msgs| yield index, msgs end end |
#import_status ⇒ Object
19 20 21 |
# File 'lib/import_manager/status_log.rb', line 19 def import_status @import_status || init_import_status end |
#log_status ⇒ Object
4 5 6 7 8 |
# File 'lib/import_manager/status_log.rb', line 4 def log_status import_status[@current_row.status] ||= {} import_status[@current_row.status][@current_row.row_index] = @current_row.name import_status[:counts].step @current_row.status end |
#pick_up_card_errors(card = nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/import_manager/status_log.rb', line 35 def pick_up_card_errors card=nil card = yield if block_given? if card card.errors.each do |error_key, msg| report_error "#{card.name} (#{error_key}): #{msg}" end card.errors.clear end card end |
#report(key, msg) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/import_manager/status_log.rb', line 10 def report key, msg case key when :duplicate_in_file msg = "#{msg} duplicate in this file" end import_status[:reports][@current_row.row_index] ||= [] import_status[:reports][@current_row.row_index] << msg end |
#report_error(msg) ⇒ Object
used by CSVRow objects
24 25 26 27 |
# File 'lib/import_manager/status_log.rb', line 24 def report_error msg import_status[:errors][@current_row.row_index] ||= [] import_status[:errors][@current_row.row_index] << msg end |