Module: Philiprehberger::FeatureFlag::Groups

Included in:
Philiprehberger::FeatureFlag
Defined in:
lib/philiprehberger/feature_flag/groups.rb

Instance Method Summary collapse

Instance Method Details

#disable_group(name) ⇒ Object



25
26
27
# File 'lib/philiprehberger/feature_flag/groups.rb', line 25

def disable_group(name)
  set_group_flags(name, false)
end

#enable_group(name) ⇒ Object



21
22
23
# File 'lib/philiprehberger/feature_flag/groups.rb', line 21

def enable_group(name)
  set_group_flags(name, true)
end

#group(name, flags) ⇒ Array<Symbol>

Define a named group of flags for bulk enable/disable operations. Redefining a group overwrites it.

Parameters:

  • name (Symbol, String)

    group name

  • flags (Array<Symbol, String>)

    flag names in the group

Returns:

  • (Array<Symbol>)

    the normalized flag names



12
13
14
15
# File 'lib/philiprehberger/feature_flag/groups.rb', line 12

def group(name, flags)
  @groups ||= {}
  @groups[name.to_sym] = flags.map(&:to_sym)
end

#group_flags(name) ⇒ Object



17
18
19
# File 'lib/philiprehberger/feature_flag/groups.rb', line 17

def group_flags(name)
  @groups&.dig(name.to_sym) || []
end

#reset_groups!Object



29
30
31
# File 'lib/philiprehberger/feature_flag/groups.rb', line 29

def reset_groups!
  @groups = nil
end