Module: Philiprehberger::FeatureFlag::Dependencies
- Included in:
- Philiprehberger::FeatureFlag
- Defined in:
- lib/philiprehberger/feature_flag/dependencies.rb
Instance Method Summary collapse
- #dependencies_met?(flag, context = {}) ⇒ Boolean
- #dependency_for(flag) ⇒ Object
-
#depends_on(flag, requires:) ⇒ Symbol
Declare that
flagdepends onrequires. - #reset_dependencies! ⇒ Object
Instance Method Details
#dependencies_met?(flag, context = {}) ⇒ Boolean
21 22 23 24 25 26 27 |
# File 'lib/philiprehberger/feature_flag/dependencies.rb', line 21 def dependencies_met?(flag, context = {}) dep = dependency_for(flag) return true if dep.nil? return false unless enabled?(dep, context: context) dependencies_met?(dep, context) end |
#dependency_for(flag) ⇒ Object
17 18 19 |
# File 'lib/philiprehberger/feature_flag/dependencies.rb', line 17 def dependency_for(flag) @dependencies&.dig(flag.to_sym) end |
#depends_on(flag, requires:) ⇒ Symbol
Declare that flag depends on requires. A dependent flag is only enabled when every flag in its dependency chain is also enabled.
12 13 14 15 |
# File 'lib/philiprehberger/feature_flag/dependencies.rb', line 12 def depends_on(flag, requires:) @dependencies ||= {} @dependencies[flag.to_sym] = requires.to_sym end |
#reset_dependencies! ⇒ Object
29 30 31 |
# File 'lib/philiprehberger/feature_flag/dependencies.rb', line 29 def reset_dependencies! @dependencies = nil end |