Class: ActiveFlags::Flag

Inherits:
ApplicationRecord show all
Defined in:
app/models/active_flags/flag.rb

Instance Method Summary collapse

Instance Method Details

#converted_valueObject



32
33
34
# File 'app/models/active_flags/flag.rb', line 32

def converted_value
  self.value = unstringify(value)
end

#notify_subject_flag_has_changedObject



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

Returns:

  • (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