Class: Kameleoon::Types::Rule

Inherits:
Object
  • Object
show all
Defined in:
lib/kameleoon/types/rule.rb

Overview

Rule

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(variations) ⇒ Rule

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Rule.



12
13
14
# File 'lib/kameleoon/types/rule.rb', line 12

def initialize(variations)
  @variations = variations
end

Instance Attribute Details

#variationsObject (readonly)

Returns the value of attribute variations.



9
10
11
# File 'lib/kameleoon/types/rule.rb', line 9

def variations
  @variations
end

Class Method Details

._build_from_internal(internal_rule, variations) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/kameleoon/types/rule.rb', line 17

def self._build_from_internal(internal_rule, variations)
  rule_variations = {}
  vars_by_exposition = internal_rule.experiment&.variations_by_exposition || []
  vars_by_exposition.each do |var_by_exp|
    base_variation = variations[var_by_exp.variation_key]
    next if base_variation.nil?

    rule_variations[base_variation.key] = Variation.new(
      base_variation.key,
      var_by_exp.variation_id,
      internal_rule.experiment&.id,
      base_variation.variables,
      base_variation.name
    )
  end
  Rule.new(rule_variations)
end

Instance Method Details

#to_sObject



35
36
37
# File 'lib/kameleoon/types/rule.rb', line 35

def to_s
  "Rule{variations:#{@variations}}"
end