Class: SplitIoClient::Engine::FallbackTreatmentCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/splitclient-rb/engine/fallback_treatment_calculator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_configurationObject

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_prefixObject

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