Class: VariationModel

Inherits:
Object
  • Object
show all
Defined in:
lib/wingify/models/campaign/variation_model.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeVariationModel

Returns a new instance of VariationModel.



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/wingify/models/campaign/variation_model.rb', line 21

def initialize
  @id = nil
  @key = ''
  @rule_key = ''
  @weight = 0
  @start_range_variation = 0
  @end_range_variation = 0
  @variables = []
  @variations = []
  @segments = {}
  @type = ''
  @salt = ''
end

Instance Attribute Details

#end_range_variationObject

Returns the value of attribute end_range_variation.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def end_range_variation
  @end_range_variation
end

#idObject

Returns the value of attribute id.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def id
  @id
end

#keyObject

Returns the value of attribute key.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def key
  @key
end

#rule_keyObject

Returns the value of attribute rule_key.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def rule_key
  @rule_key
end

#saltObject

Returns the value of attribute salt.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def salt
  @salt
end

#segmentsObject

Returns the value of attribute segments.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def segments
  @segments
end

#start_range_variationObject

Returns the value of attribute start_range_variation.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def start_range_variation
  @start_range_variation
end

#typeObject

Returns the value of attribute type.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def type
  @type
end

#variablesObject

Returns the value of attribute variables.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def variables
  @variables
end

#variationsObject

Returns the value of attribute variations.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def variations
  @variations
end

#weightObject

Returns the value of attribute weight.



18
19
20
# File 'lib/wingify/models/campaign/variation_model.rb', line 18

def weight
  @weight
end

Instance Method Details

#get_end_range_variationObject



110
111
112
# File 'lib/wingify/models/campaign/variation_model.rb', line 110

def get_end_range_variation
  @end_range_variation
end

#get_idObject



86
87
88
# File 'lib/wingify/models/campaign/variation_model.rb', line 86

def get_id
  @id
end

#get_keyObject



90
91
92
# File 'lib/wingify/models/campaign/variation_model.rb', line 90

def get_key
  @key
end

#get_rule_keyObject



94
95
96
# File 'lib/wingify/models/campaign/variation_model.rb', line 94

def get_rule_key
  @rule_key
end

#get_saltObject



134
135
136
# File 'lib/wingify/models/campaign/variation_model.rb', line 134

def get_salt
  @salt
end

#get_segmentsObject



126
127
128
# File 'lib/wingify/models/campaign/variation_model.rb', line 126

def get_segments
  @segments
end

#get_start_range_variationObject



102
103
104
# File 'lib/wingify/models/campaign/variation_model.rb', line 102

def get_start_range_variation
  @start_range_variation
end

#get_typeObject



130
131
132
# File 'lib/wingify/models/campaign/variation_model.rb', line 130

def get_type
  @type
end

#get_variablesObject



118
119
120
# File 'lib/wingify/models/campaign/variation_model.rb', line 118

def get_variables
  @variables
end

#get_variationsObject



122
123
124
# File 'lib/wingify/models/campaign/variation_model.rb', line 122

def get_variations
  @variations
end

#get_weightObject



98
99
100
# File 'lib/wingify/models/campaign/variation_model.rb', line 98

def get_weight
  @weight
end

#model_from_dictionary(variation) ⇒ Object

Creates a model instance from a hash (dictionary)



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/wingify/models/campaign/variation_model.rb', line 36

def model_from_dictionary(variation)
  if variation.is_a?(Hash)
    @id = variation["id"]
    @key = variation["key"] || variation["name"]
    @weight = variation["weight"]
    @rule_key = variation["ruleKey"]
    @salt = variation["salt"]
    @type = variation["type"]
    @start_range_variation = variation["start_range_variation"]
    @end_range_variation = variation["end_range_variation"]
    @segments = variation["segments"] if variation["segments"]

    @variables = process_variables(variation["variables"])
    @variations = process_variations(variation["variations"])
  elsif variation.is_a?(VariationModel)
    @id = variation.id
    @key = variation.key
    @weight = variation.weight
    @rule_key = variation.rule_key
    @salt = variation.salt
    @type = variation.type
    @start_range_variation = variation.start_range_variation
    @end_range_variation = variation.end_range_variation
    @segments = variation.segments
    @variables = variation.variables
    @variations = variation.variations
  else
    @id = variation.id
    @key = variation.key
    @rule_key = variation.rule_key
    @salt = variation.salt
    @type = variation.type
    @segments = variation.segments
    @variations = variation.variations
  end
  self
end

#process_variables(variable_list) ⇒ Object

Process variables list



75
76
77
78
# File 'lib/wingify/models/campaign/variation_model.rb', line 75

def process_variables(variable_list)
  return [] unless variable_list.is_a?(Array)
  variable_list.map { |variable| VariableModel.new.model_from_dictionary(variable) }
end

#process_variations(variation_list) ⇒ Object

Process variations list



81
82
83
84
# File 'lib/wingify/models/campaign/variation_model.rb', line 81

def process_variations(variation_list)
  return [] unless variation_list.is_a?(Array)
  variation_list.map { |variation| VariationModel.new.model_from_dictionary(variation) }
end

#set_end_range(end_range_variation) ⇒ Object



114
115
116
# File 'lib/wingify/models/campaign/variation_model.rb', line 114

def set_end_range(end_range_variation)
  @end_range_variation = end_range_variation
end

#set_start_range(start_range_variation) ⇒ Object



106
107
108
# File 'lib/wingify/models/campaign/variation_model.rb', line 106

def set_start_range(start_range_variation)
  @start_range_variation = start_range_variation
end