Class: Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing
- Inherits:
-
Object
- Object
- Eco::API::UseCases::OozeSamples::HelpersMigration::TypedFieldsPairing
- Defined in:
- lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb
Constant Summary collapse
- EXCLUDED_TYPES =
["tag_field", "chart", "frequency_rate_chart"]
Instance Attribute Summary collapse
-
#dst ⇒ Object
readonly
Returns the value of attribute dst.
-
#dst_unpaired ⇒ Object
readonly
Returns the value of attribute dst_unpaired.
-
#src ⇒ Object
readonly
Returns the value of attribute src.
-
#src_dst_multi ⇒ Object
readonly
Returns the value of attribute src_dst_multi.
-
#src_dst_pairs ⇒ Object
readonly
Returns the value of attribute src_dst_pairs.
-
#src_unpaired ⇒ Object
readonly
Returns the value of attribute src_unpaired.
Instance Method Summary collapse
- #each_pair ⇒ Object
-
#initialize(source, destination, src_excluded: nil, dst_excluded: nil, exclude_ximport: false) ⇒ TypedFieldsPairing
constructor
A new instance of TypedFieldsPairing.
- #report_dst_unpaired(only_required: false, exclude_ximport: true) ⇒ Object
- #report_multi_pairs(only_present: true, only_indexed: false, dst_exclude_ximport: true) ⇒ Object
- #report_src_unpaired(only_present: true, only_indexed: false) ⇒ Object
-
#resolve(*flds) ⇒ Object
Remove from unpaired tracking those
flds
. - #some_multi? ⇒ Boolean
Methods included from Eco::API::UseCases::OozeSamples::Helpers::Shortcuts
#bracked_regex, #clean_question, #is_number?, #non_letters_regex, #normalize_string, #object_reference, #same_string?, #simplify_string, #titleize, #to_i
Constructor Details
#initialize(source, destination, src_excluded: nil, dst_excluded: nil, exclude_ximport: false) ⇒ TypedFieldsPairing
Returns a new instance of TypedFieldsPairing.
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 21 def initialize(source, destination, src_excluded: nil, dst_excluded: nil, exclude_ximport: false) @src = source @dst = destination @src_excluded = src_excluded || [] @dst_excluded = dst_excluded || [] @exclude_ximport = !!exclude_ximport reset! process(exact: true) process end |
Instance Attribute Details
#dst ⇒ Object (readonly)
Returns the value of attribute dst.
17 18 19 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 17 def dst @dst end |
#dst_unpaired ⇒ Object (readonly)
Returns the value of attribute dst_unpaired.
18 19 20 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 18 def dst_unpaired @dst_unpaired end |
#src ⇒ Object (readonly)
Returns the value of attribute src.
17 18 19 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 17 def src @src end |
#src_dst_multi ⇒ Object (readonly)
Returns the value of attribute src_dst_multi.
19 20 21 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 19 def src_dst_multi @src_dst_multi end |
#src_dst_pairs ⇒ Object (readonly)
Returns the value of attribute src_dst_pairs.
19 20 21 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 19 def src_dst_pairs @src_dst_pairs end |
#src_unpaired ⇒ Object (readonly)
Returns the value of attribute src_unpaired.
18 19 20 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 18 def src_unpaired @src_unpaired end |
Instance Method Details
#each_pair ⇒ Object
33 34 35 36 37 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 33 def each_pair src_dst_pairs.each do |(src_field, dst_field)| yield(src_field, dst_field) if block_given? end end |
#report_dst_unpaired(only_required: false, exclude_ximport: true) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 53 def report_dst_unpaired(only_required: false, exclude_ximport: true) return nil if dst_unpaired.empty? msg = "Destination entry with unpaired fields (#{object_reference(src)}):\n" dst_filtered = dst_unpaired.values.flatten.reject do |dst_fld| only_required && !dst_fld.required end.reject do |dst_fld| exclude_ximport && ximport?(dst_fld) end return nil if dst_filtered.empty? msg << dst_filtered.map do |dst_fld| " • #{object_reference(dst_fld)}" end.join("\n") end |
#report_multi_pairs(only_present: true, only_indexed: false, dst_exclude_ximport: true) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 67 def report_multi_pairs(only_present: true, only_indexed: false, dst_exclude_ximport: true) return nil if src_dst_multi.empty? "".tap do |msg| msg << "Source fields in (#{object_reference(src)}) paired with multiple destination fields:\n" msg_flds = "" src_dst_multi.each do |type, pairs| pairs.each do |(src_fld, dst_flds)| next if (only_present && src_fld.empty?) || (only_indexed && src_fld.deindex) dst_filtered = dst_flds.reject do |dst_fld| dst_exclude_ximport && ximport?(dst_fld) end next if dst_filtered.empty? msg_flds << " • #{object_reference(src_fld)}\n" msg_flds << dst_filtered.map do |dst_fld| " • #{object_reference(dst_fld)}" end.compact.join("\n") end end return nil if msg_flds.empty? msg << msg_flds end end |
#report_src_unpaired(only_present: true, only_indexed: false) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 39 def report_src_unpaired(only_present: true, only_indexed: false) return nil if src_unpaired.empty? msg = "Source entry with unpaired fields (#{object_reference(src)}):\n" src_filtered = src_unpaired.values.flatten.reject do |src_fld| only_present && src_fld.empty? end.reject do |src_fld| only_indexed && src_fld.deindex end return nil if src_filtered.empty? msg << src_filtered.map do |src_fld| " • #{object_reference(src_fld)}" end.join("\n") end |
#resolve(*flds) ⇒ Object
Remove from unpaired tracking those flds
.
91 92 93 94 95 96 97 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 91 def resolve(*flds) flds.each do |fld| next if unpaired_delete(fld, src_unpaired) unpaired_delete(fld, dst_unpaired) end multi_delete(*flds) end |
#some_multi? ⇒ Boolean
99 100 101 |
# File 'lib/eco/api/usecases/ooze_samples/helpers_migration/typed_fields_pairing.rb', line 99 def some_multi? !src_dst_multi.empty? end |