Module: Aliquot::DataForSubstitution
- Included in:
- Aliquot
- Defined in:
- app/models/aliquot/data_for_substitution.rb
Overview
This module is used to create a substitution hash to be used in TagSubstitution library after an aliquot is updated (saved), it uses aliquot.saved_changes to create substitution hash substitution hash is then used by TagSubstitution to find similar aliquots and update them
Instance Method Summary collapse
- #changes ⇒ Object
- #generate_substitution_hash ⇒ Object
- #original_tag2_id ⇒ Object
- #original_tag_id ⇒ Object
- #other_attributes_for_substitution ⇒ Object
- #substitute_tag2_id ⇒ Object
- #substitute_tag_id ⇒ Object
- #substitution_hash ⇒ Object
- #tag2_id_substitution ⇒ Object
- #tag_id_substitution ⇒ Object
Instance Method Details
#changes ⇒ Object
49 50 51 |
# File 'app/models/aliquot/data_for_substitution.rb', line 49 def changes @changes ||= saved_changes end |
#generate_substitution_hash ⇒ Object
13 14 15 |
# File 'app/models/aliquot/data_for_substitution.rb', line 13 def generate_substitution_hash aliquot_identifiers.merge(tag_id_substitution).merge(tag2_id_substitution).merge(other_attributes_for_substitution) end |
#original_tag2_id ⇒ Object
37 38 39 |
# File 'app/models/aliquot/data_for_substitution.rb', line 37 def original_tag2_id changes[:tag2_id].first end |
#original_tag_id ⇒ Object
29 30 31 |
# File 'app/models/aliquot/data_for_substitution.rb', line 29 def original_tag_id changes[:tag_id].first end |
#other_attributes_for_substitution ⇒ Object
45 46 47 |
# File 'app/models/aliquot/data_for_substitution.rb', line 45 def other_attributes_for_substitution changes.transform_values(&:last).except(:updated_at, :tag_id, :tag2_id) end |
#substitute_tag2_id ⇒ Object
41 42 43 |
# File 'app/models/aliquot/data_for_substitution.rb', line 41 def substitute_tag2_id changes[:tag2_id].last end |
#substitute_tag_id ⇒ Object
33 34 35 |
# File 'app/models/aliquot/data_for_substitution.rb', line 33 def substitute_tag_id changes[:tag_id].last end |
#substitution_hash ⇒ Object
7 8 9 10 11 |
# File 'app/models/aliquot/data_for_substitution.rb', line 7 def substitution_hash return if id_previously_changed? generate_substitution_hash if saved_changes? end |
#tag2_id_substitution ⇒ Object
23 24 25 26 27 |
# File 'app/models/aliquot/data_for_substitution.rb', line 23 def tag2_id_substitution return {} if changes[:tag2_id].blank? { original_tag2_id:, substitute_tag2_id: } end |
#tag_id_substitution ⇒ Object
17 18 19 20 21 |
# File 'app/models/aliquot/data_for_substitution.rb', line 17 def tag_id_substitution return {} if changes[:tag_id].blank? { original_tag_id:, substitute_tag_id: } end |