Class: Hekenga::FailureReport
- Inherits:
-
Object
- Object
- Hekenga::FailureReport
- Defined in:
- lib/hekenga/failure_report.rb
Instance Method Summary collapse
-
#initialize(migration) ⇒ FailureReport
constructor
A new instance of FailureReport.
- #print! ⇒ Object
-
#tasks ⇒ Object
Per-task summaries for document tasks that have any failed or invalid document IDs.
Constructor Details
#initialize(migration) ⇒ FailureReport
Returns a new instance of FailureReport.
3 4 5 |
# File 'lib/hekenga/failure_report.rb', line 3 def initialize(migration) @migration = migration end |
Instance Method Details
#print! ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/hekenga/failure_report.rb', line 36 def print! Hekenga.log("Failures for #{@migration.to_key}") summaries = tasks if summaries.empty? Hekenga.log(" No failed or invalid documents.") return end failed_ids = summaries.flat_map { |summary| summary[:failed_ids] } invalid_ids = summaries.flat_map { |summary| summary[:invalid_ids] } print_ids("Failed", failed_ids) print_ids("Invalid", invalid_ids) end |
#tasks ⇒ Object
Per-task summaries for document tasks that have any failed or invalid document IDs. => [{ idx:, description:, failed_ids: [...], invalid_ids: [...] }, ...]
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hekenga/failure_report.rb', line 10 def tasks @migration.tasks.each.with_index.filter_map do |task, idx| next unless task.is_a?(Hekenga::DocumentTask) records = @migration.task_records(idx).any_of( { :failed_ids.ne => [] }, { :invalid_ids.ne => [] } ) failed_ids = [] invalid_ids = [] records.pluck(:failed_ids, :invalid_ids).each do |failed, invalid| failed_ids.concat(failed) if failed invalid_ids.concat(invalid) if invalid end next if failed_ids.empty? && invalid_ids.empty? { idx: idx, description: task.description, failed_ids: failed_ids, invalid_ids: invalid_ids } end end |