Class: SplitIoClient::Engine::FallbackTreatmentCalculator
- Inherits:
-
Object
- Object
- SplitIoClient::Engine::FallbackTreatmentCalculator
- Defined in:
- lib/splitclient-rb/engine/fallback_treatment_calculator.rb
Instance Attribute Summary collapse
-
#fallback_treatments_configuration ⇒ Object
Returns the value of attribute fallback_treatments_configuration.
-
#label_prefix ⇒ Object
Returns the value of attribute label_prefix.
Instance Method Summary collapse
-
#initialize(fallback_treatment_configuration) ⇒ FallbackTreatmentCalculator
constructor
A new instance of FallbackTreatmentCalculator.
- #resolve(flag_name, label) ⇒ Object
Constructor Details
#initialize(fallback_treatment_configuration) ⇒ FallbackTreatmentCalculator
Returns a new instance of FallbackTreatmentCalculator.
8 9 10 11 |
# File 'lib/splitclient-rb/engine/fallback_treatment_calculator.rb', line 8 def initialize(fallback_treatment_configuration) @label_prefix = 'fallback - ' @fallback_treatments_configuration = fallback_treatment_configuration end |
Instance Attribute Details
#fallback_treatments_configuration ⇒ Object
Returns the value of attribute fallback_treatments_configuration.
6 7 8 |
# File 'lib/splitclient-rb/engine/fallback_treatment_calculator.rb', line 6 def fallback_treatments_configuration @fallback_treatments_configuration end |
#label_prefix ⇒ Object
Returns the value of attribute label_prefix.
6 7 8 |
# File 'lib/splitclient-rb/engine/fallback_treatment_calculator.rb', line 6 def label_prefix @label_prefix end |
Instance Method Details
#resolve(flag_name, label) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/splitclient-rb/engine/fallback_treatment_calculator.rb', line 13 def resolve(flag_name, label) default_fallback_treatment = Engine::Models::FallbackTreatment.new( Engine::Models::Treatment::CONTROL, nil, label ) return default_fallback_treatment if @fallback_treatments_configuration.nil? if !@fallback_treatments_configuration.by_flag_fallback_treatment.nil? \ && !@fallback_treatments_configuration.by_flag_fallback_treatment.fetch(flag_name, nil).nil? return copy_with_label( @fallback_treatments_configuration.by_flag_fallback_treatment[flag_name], resolve_label(label) ) end return copy_with_label(@fallback_treatments_configuration.global_fallback_treatment, resolve_label(label)) \ unless @fallback_treatments_configuration.global_fallback_treatment.nil? default_fallback_treatment end |