Module: Philiprehberger::FeatureFlag::Targeting
- Included in:
- Philiprehberger::FeatureFlag
- Defined in:
- lib/philiprehberger/feature_flag/targeting.rb
Instance Method Summary collapse
- #disable_for(flag, users:) ⇒ Object
- #enable_for(flag, users:) ⇒ Object
- #reset_targets! ⇒ Object
- #targeted?(flag, user) ⇒ Boolean
- #targeted_users(flag) ⇒ Object
Instance Method Details
#disable_for(flag, users:) ⇒ Object
12 13 14 15 16 17 |
# File 'lib/philiprehberger/feature_flag/targeting.rb', line 12 def disable_for(flag, users:) @targets ||= {} return unless @targets.key?(flag.to_sym) @targets[flag.to_sym] -= users.map(&:to_s) end |
#enable_for(flag, users:) ⇒ Object
6 7 8 9 10 |
# File 'lib/philiprehberger/feature_flag/targeting.rb', line 6 def enable_for(flag, users:) @targets ||= {} @targets[flag.to_sym] ||= [] @targets[flag.to_sym] |= users.map(&:to_s) end |
#reset_targets! ⇒ Object
29 30 31 |
# File 'lib/philiprehberger/feature_flag/targeting.rb', line 29 def reset_targets! @targets = nil end |
#targeted?(flag, user) ⇒ Boolean
23 24 25 26 27 |
# File 'lib/philiprehberger/feature_flag/targeting.rb', line 23 def targeted?(flag, user) return false if user.nil? targeted_users(flag).include?(user.to_s) end |
#targeted_users(flag) ⇒ Object
19 20 21 |
# File 'lib/philiprehberger/feature_flag/targeting.rb', line 19 def targeted_users(flag) @targets&.dig(flag.to_sym) || [] end |