Class: CampaignModel
- Inherits:
-
Object
- Object
- CampaignModel
- Defined in:
- lib/wingify/models/campaign/campaign_model.rb
Instance Attribute Summary collapse
-
#campaign_id ⇒ Object
readonly
Returns the value of attribute campaign_id.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#is_forced_variation_enabled ⇒ Object
readonly
Returns the value of attribute is_forced_variation_enabled.
-
#is_user_list_enabled ⇒ Object
readonly
Returns the value of attribute is_user_list_enabled.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#metrics ⇒ Object
readonly
Returns the value of attribute metrics.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#percent_traffic ⇒ Object
readonly
Returns the value of attribute percent_traffic.
-
#rule_key ⇒ Object
readonly
Returns the value of attribute rule_key.
-
#salt ⇒ Object
readonly
Returns the value of attribute salt.
-
#segments ⇒ Object
readonly
Returns the value of attribute segments.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#variables ⇒ Object
readonly
Returns the value of attribute variables.
-
#variation_id ⇒ Object
readonly
Returns the value of attribute variation_id.
-
#variations ⇒ Object
readonly
Returns the value of attribute variations.
Instance Method Summary collapse
-
#copy(campaign_model) ⇒ Object
Copies campaign properties from another CampaignModel instance.
- #get_campaign_id ⇒ Object
- #get_id ⇒ Object
- #get_is_forced_variation_enabled ⇒ Object
- #get_is_user_list_enabled ⇒ Object
- #get_key ⇒ Object
- #get_metrics ⇒ Object
- #get_name ⇒ Object
- #get_rule_key ⇒ Object
- #get_salt ⇒ Object
- #get_segments ⇒ Object
- #get_traffic ⇒ Object
- #get_type ⇒ Object
- #get_variables ⇒ Object
- #get_variation_id ⇒ Object
- #get_variations ⇒ Object
-
#initialize ⇒ CampaignModel
constructor
A new instance of CampaignModel.
-
#model_from_dictionary(campaign) ⇒ Object
Creates a model instance from a dictionary (hash) or CampaignModel.
-
#process_campaign_keys(campaign) ⇒ Object
Process campaign keys.
-
#process_campaign_model(campaign_model) ⇒ Object
Process campaign properties from CampaignModel instance.
-
#process_campaign_properties(campaign) ⇒ Object
Process campaign properties (metrics, variations, variables).
-
#process_metrics(metrics_list) ⇒ Object
Process metrics.
-
#process_variables(variable_list) ⇒ Object
Process variables.
-
#process_variations(variation_list) ⇒ Object
Process variations.
- #set_key(key) ⇒ Object
- #set_rule_key(rule_key) ⇒ Object
- #set_variations(variations) ⇒ Object
Constructor Details
#initialize ⇒ CampaignModel
Returns a new instance of CampaignModel.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 24 def initialize @id = nil @segments = {} @salt = '' @percent_traffic = 0 @is_user_list_enabled = false @key = '' @type = '' @name = '' @is_forced_variation_enabled = false @variations = [] @metrics = [] @variables = [] @variation_id = nil @campaign_id = nil @rule_key = '' end |
Instance Attribute Details
#campaign_id ⇒ Object (readonly)
Returns the value of attribute campaign_id.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def campaign_id @campaign_id end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def id @id end |
#is_forced_variation_enabled ⇒ Object (readonly)
Returns the value of attribute is_forced_variation_enabled.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def is_forced_variation_enabled @is_forced_variation_enabled end |
#is_user_list_enabled ⇒ Object (readonly)
Returns the value of attribute is_user_list_enabled.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def is_user_list_enabled @is_user_list_enabled end |
#key ⇒ Object (readonly)
Returns the value of attribute key.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def key @key end |
#metrics ⇒ Object (readonly)
Returns the value of attribute metrics.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def metrics @metrics end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def name @name end |
#percent_traffic ⇒ Object (readonly)
Returns the value of attribute percent_traffic.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def percent_traffic @percent_traffic end |
#rule_key ⇒ Object (readonly)
Returns the value of attribute rule_key.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def rule_key @rule_key end |
#salt ⇒ Object (readonly)
Returns the value of attribute salt.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def salt @salt end |
#segments ⇒ Object (readonly)
Returns the value of attribute segments.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def segments @segments end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def type @type end |
#variables ⇒ Object (readonly)
Returns the value of attribute variables.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def variables @variables end |
#variation_id ⇒ Object (readonly)
Returns the value of attribute variation_id.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def variation_id @variation_id end |
#variations ⇒ Object (readonly)
Returns the value of attribute variations.
20 21 22 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 20 def variations @variations end |
Instance Method Details
#copy(campaign_model) ⇒ Object
Copies campaign properties from another CampaignModel instance
43 44 45 46 47 48 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 43 def copy(campaign_model) @metrics = campaign_model.metrics @variations = campaign_model.variations @variables = campaign_model.variables process_campaign_keys(campaign_model) end |
#get_campaign_id ⇒ Object
121 122 123 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 121 def get_campaign_id @campaign_id end |
#get_id ⇒ Object
61 62 63 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 61 def get_id @id end |
#get_is_forced_variation_enabled ⇒ Object
97 98 99 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 97 def get_is_forced_variation_enabled @is_forced_variation_enabled end |
#get_is_user_list_enabled ⇒ Object
77 78 79 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 77 def get_is_user_list_enabled @is_user_list_enabled end |
#get_key ⇒ Object
81 82 83 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 81 def get_key @key end |
#get_metrics ⇒ Object
109 110 111 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 109 def get_metrics @metrics end |
#get_name ⇒ Object
93 94 95 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 93 def get_name @name end |
#get_rule_key ⇒ Object
125 126 127 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 125 def get_rule_key @rule_key end |
#get_salt ⇒ Object
69 70 71 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 69 def get_salt @salt end |
#get_segments ⇒ Object
65 66 67 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 65 def get_segments @segments end |
#get_traffic ⇒ Object
73 74 75 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 73 def get_traffic @percent_traffic end |
#get_type ⇒ Object
89 90 91 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 89 def get_type @type end |
#get_variables ⇒ Object
113 114 115 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 113 def get_variables @variables end |
#get_variation_id ⇒ Object
117 118 119 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 117 def get_variation_id @variation_id end |
#get_variations ⇒ Object
101 102 103 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 101 def get_variations @variations end |
#model_from_dictionary(campaign) ⇒ Object
Creates a model instance from a dictionary (hash) or CampaignModel
51 52 53 54 55 56 57 58 59 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 51 def model_from_dictionary(campaign) if campaign.is_a?(Hash) process_campaign_properties(campaign) process_campaign_keys(campaign) elsif campaign.is_a?(CampaignModel) process_campaign_model(campaign) end self end |
#process_campaign_keys(campaign) ⇒ Object
Process campaign keys
141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 141 def process_campaign_keys(campaign) @id = campaign["id"] @percent_traffic = campaign["percentTraffic"] @name = campaign["name"] @variation_id = campaign["variationId"] @campaign_id = campaign["campaignId"] @rule_key = campaign["ruleKey"] @is_forced_variation_enabled = campaign["isForcedVariationEnabled"] @is_user_list_enabled = campaign["isUserListEnabled"] @segments = campaign["segments"] @key = campaign["key"] @type = campaign["type"] @salt = campaign["salt"] end |
#process_campaign_model(campaign_model) ⇒ Object
Process campaign properties from CampaignModel instance
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 175 def process_campaign_model(campaign_model) @variables = campaign_model.variables @variations = campaign_model.variations @metrics = campaign_model.metrics @id = campaign_model.id @percent_traffic = campaign_model.percent_traffic @name = campaign_model.name @variation_id = campaign_model.variation_id @campaign_id = campaign_model.campaign_id @rule_key = campaign_model.rule_key @is_forced_variation_enabled = campaign_model.is_forced_variation_enabled @is_user_list_enabled = campaign_model.is_user_list_enabled @segments = campaign_model.segments @key = campaign_model.key @type = campaign_model.type @salt = campaign_model.salt end |
#process_campaign_properties(campaign) ⇒ Object
Process campaign properties (metrics, variations, variables)
134 135 136 137 138 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 134 def process_campaign_properties(campaign) @variables = process_variables(campaign["variables"]) if campaign["variables"] @variations = process_variations(campaign["variations"]) if campaign["variations"] @metrics = process_metrics(campaign["metrics"]) if campaign["metrics"] end |
#process_metrics(metrics_list) ⇒ Object
Process metrics
169 170 171 172 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 169 def process_metrics(metrics_list) return [] if metrics_list.nil? || metrics_list.is_a?(Hash) # Handle empty cases metrics_list.map { |metric| MetricModel.new.model_from_dictionary(metric) } end |
#process_variables(variable_list) ⇒ Object
Process variables
157 158 159 160 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 157 def process_variables(variable_list) return [] if variable_list.nil? || variable_list.is_a?(Hash) # Handle empty cases variable_list.map { |variable| VariableModel.new.model_from_dictionary(variable) } end |
#process_variations(variation_list) ⇒ Object
Process variations
163 164 165 166 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 163 def process_variations(variation_list) return [] if variation_list.nil? || variation_list.is_a?(Hash) # Handle empty cases variation_list.map { |variation| VariationModel.new.model_from_dictionary(variation) } end |
#set_key(key) ⇒ Object
85 86 87 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 85 def set_key(key) @key = key end |
#set_rule_key(rule_key) ⇒ Object
129 130 131 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 129 def set_rule_key(rule_key) @rule_key = rule_key end |
#set_variations(variations) ⇒ Object
105 106 107 |
# File 'lib/wingify/models/campaign/campaign_model.rb', line 105 def set_variations(variations) @variations = variations end |