Class: ActiveFlags::Flag
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- ActiveFlags::Flag
- Defined in:
- app/models/active_flags/flag.rb
Instance Method Summary collapse
- #converted_value ⇒ Object
- #notify_subject_flag_has_changed ⇒ Object
- #removing_duplicated_flags! ⇒ Object
- #removing_duplicated_needed? ⇒ Boolean
Instance Method Details
#converted_value ⇒ Object
32 33 34 |
# File 'app/models/active_flags/flag.rb', line 32 def converted_value self.value = unstringify(value) end |
#notify_subject_flag_has_changed ⇒ Object
11 12 13 14 |
# File 'app/models/active_flags/flag.rb', line 11 def notify_subject_flag_has_changed subject.flag_has_changed(key, value) if subject&.respond_to?(:flag_has_changed) true end |
#removing_duplicated_flags! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/models/active_flags/flag.rb', line 20 def removing_duplicated_flags! return false unless removing_duplicated_needed? grouped = ActiveFlags::Flag .where(subject_id: subject_id, subject_type: subject_type, key: key) .group_by { |model| [model.key, model.subject_id, model.subject_type] } grouped.values.each do |duplicates| duplicates.shift duplicates.each(&:destroy) end true end |
#removing_duplicated_needed? ⇒ Boolean
16 17 18 |
# File 'app/models/active_flags/flag.rb', line 16 def removing_duplicated_needed? ActiveFlags::Flag.where(subject: subject, key: key).any? end |