Module: Tag::MatrixHooks
Instance Method Summary collapse
- #in_scope_observation_matrix_column_items ⇒ Object
-
#in_scope_observation_matrix_row_items ⇒ Object
MatrixColumn/RowItem interface _change methods use the array to see how the record was updated new -> [nil, 1] change -> [1, 2].
-
#increment_matrix_counts ⇒ Object
protected
This is a dynamic check.
- #out_of_scope_observation_matrix_column_items ⇒ Object
- #out_of_scope_observation_matrix_row_items ⇒ Object
- #purge_from_matrices ⇒ Object protected
Instance Method Details
#in_scope_observation_matrix_column_items ⇒ Object
32 33 34 35 |
# File 'app/models/tag/matrix_hooks.rb', line 32 def in_scope_observation_matrix_column_items return [] unless keyword_id_changed? ObservationMatrixColumnItem::Dynamic::Tag.where(controlled_vocabulary_term_id: keyword_id_change.last) end |
#in_scope_observation_matrix_row_items ⇒ Object
MatrixColumn/RowItem interface
_change methods use the array to see how the record was updated new -> [nil, 1] change -> [1, 2]
22 23 24 25 |
# File 'app/models/tag/matrix_hooks.rb', line 22 def in_scope_observation_matrix_row_items return [] unless keyword_id_changed? ObservationMatrixRowItem::Dynamic::Tag.where(observation_object_type: 'ControlledVocabularyTerm', observation_object_id: keyword_id_change.last) end |
#increment_matrix_counts ⇒ Object (protected)
This is a dynamic check. For all row items that reference this keyword, increment the reference of just that object.
61 62 63 64 65 |
# File 'app/models/tag/matrix_hooks.rb', line 61 def increment_matrix_counts ObservationMatrixRowItem::Dynamic::Tag.where(observation_object_type: 'ControlledVocabularyTerm', observation_object_id: keyword_id).each do |mri| mri.update_single_matrix_row(tag_object) end end |
#out_of_scope_observation_matrix_column_items ⇒ Object
37 38 39 40 |
# File 'app/models/tag/matrix_hooks.rb', line 37 def out_of_scope_observation_matrix_column_items return [] unless keyword_id_changed? && keyword_id_change.first ObservationMatrixColumnItem::Dynamic::Tag.where(controlled_vocabulary_term_id: keyword_id_change.first) end |
#out_of_scope_observation_matrix_row_items ⇒ Object
27 28 29 30 |
# File 'app/models/tag/matrix_hooks.rb', line 27 def out_of_scope_observation_matrix_row_items return [] unless keyword_id_changed? && keyword_id_change.first ObservationMatrixRowItem::Dynamic::Tag.where(observation_object_type: 'ControlledVocabularyTerm', observation_object_id: keyword_id_change.first) end |
#purge_from_matrices ⇒ Object (protected)
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/models/tag/matrix_hooks.rb', line 44 def purge_from_matrices case tag_object_type when 'Descriptor' ObservationMatrixColumnItem::Dynamic::Tag.where(controlled_vocabulary_term_id: keyword_id).each do |mci| mci.cleanup_single_matrix_column(tag_object_id) # a descriptor_id end when 'Otu', 'CollectionObject', 'Extract' ObservationMatrixRowItem::Dynamic::Tag.where(observation_object_type: 'ControlledVocabularyTerm', observation_object_id: keyword_id).each do |mri| mri.cleanup_single_matrix_row(tag_object) end else true end end |