vwo-sdk 1.22.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84d01560f605a69e8ed011a19ba4e3aae0f67341fd653a562d817801d6a55073
4
- data.tar.gz: b1355bef1b2b095774c702a6757c1a7141e2cf9758d0a1b8a0510111a8ee597a
3
+ metadata.gz: bb7f9b19ca3bcec001ea97863046b3d33f3806e8a3b4b0fb76d3d3be0dbe1e41
4
+ data.tar.gz: 30357fe06aeb296f73fcc8699baf89e9c291a1dd3d44bb7e57c6be7f4317aa13
5
5
  SHA512:
6
- metadata.gz: cc2c8a411e3c0a674ab2bc00e540b3e49a8dd943ec50aa04fba04839ef6f3e255fc275529f872aa5ca73dfe893cb43e8853a0875cc3dda9330554b6491590947
7
- data.tar.gz: 5482e79564a365ec8fe4012b25997096352129e915daca28774c790c416a528302ea1f0bb685ef559b9ee0846b0229957a8f6ab77008f4e48222a7cae5892699
6
+ metadata.gz: 171a4e3783e5efd552f8e327deece79d4152a6221cb64efc35d544ba6a806b6eb498587683386e927bf22a2cd7fd6e69cdeb986a3ceec46520203ce513cba169
7
+ data.tar.gz: 8bf89ba2183b67b158dc0d97cdcf691abde8ea3d30325ab0677dd8e3f9236b72ec55c734c28464fca08420f00028d7ec2b717c64a233822e65292f46cad25b61
data/lib/vwo/constants.rb CHANGED
@@ -27,7 +27,7 @@ class VWO
27
27
  HTTP_PROTOCOL = 'http://'
28
28
  HTTPS_PROTOCOL = 'https://'
29
29
  URL_NAMESPACE = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'
30
- SDK_VERSION = '1.22.0'
30
+ SDK_VERSION = '1.24.0'
31
31
  SDK_NAME = 'ruby'
32
32
  VWO_DELIMITER = '_vwo_'
33
33
  MAX_EVENTS_PER_REQUEST = 5000
@@ -95,6 +95,10 @@ class VWO
95
95
  :vwo_user_id => generator_for(user_id, @settings_file['accountId'])
96
96
  }
97
97
 
98
+ if campaign.has_key?("name")
99
+ decision[:campaign_name] = campaign['name']
100
+ end
101
+
98
102
  if is_campaign_part_of_group
99
103
  group_id = @settings_file["campaignGroups"][campaign["id"].to_s]
100
104
  decision[:group_id] = group_id
@@ -459,10 +463,19 @@ class VWO
459
463
  # @return[Hash]
460
464
 
461
465
  def evaluate_whitelisting(user_id, campaign, api_name, campaign_key, variation_targeting_variables = {}, disable_logs = false)
462
- if variation_targeting_variables.nil?
463
- variation_targeting_variables = { '_vwo_user_id' => user_id }
466
+ if campaign.key?('isUserListEnabled') && campaign["isUserListEnabled"]
467
+ vwo_user_id = generator_for(user_id, @settings_file['accountId'])
468
+ if variation_targeting_variables.nil?
469
+ variation_targeting_variables = { _vwo_user_id: vwo_user_id }
470
+ else
471
+ variation_targeting_variables[:_vwo_user_id] = vwo_user_id
472
+ end
464
473
  else
465
- variation_targeting_variables['_vwo_user_id'] = user_id
474
+ if variation_targeting_variables.nil?
475
+ variation_targeting_variables = { _vwo_user_id: user_id }
476
+ else
477
+ variation_targeting_variables[:_vwo_user_id] = user_id
478
+ end
466
479
  end
467
480
  targeted_variations = []
468
481
 
@@ -485,7 +498,7 @@ class VWO
485
498
  user_id: user_id,
486
499
  status: status,
487
500
  custom_variables: variation_targeting_variables,
488
- variation_name: variation['name'],
501
+ variation_name: status == StatusEnum::PASSED ? (campaign['type'] == CampaignTypes::FEATURE_ROLLOUT ? 'and hence becomes part of the rollout' : "for " + variation['name']) : '',
489
502
  segmentation_type: SegmentationTypeEnum::WHITELISTING,
490
503
  api_name: api_name
491
504
  ),
@@ -717,7 +730,7 @@ class VWO
717
730
 
718
731
  group_campaigns.each do |campaign|
719
732
  if called_campaign["id"] == campaign["id"] || check_presegmentation(campaign, user_id, custom_variables, '', true) && @bucketer.user_part_of_campaign?(user_id, campaign)
720
- eligible_campaigns.append(campaign)
733
+ eligible_campaigns.push(campaign)
721
734
  end
722
735
  end
723
736
  return eligible_campaigns
@@ -748,7 +761,7 @@ class VWO
748
761
  def get_eligible_campaigns_key(eligible_campaigns)
749
762
  eligible_campaigns_key = []
750
763
  eligible_campaigns.each do |campaign|
751
- eligible_campaigns_key.append(campaign["key"])
764
+ eligible_campaigns_key.push(campaign["key"])
752
765
  end
753
766
  eligible_campaigns_key
754
767
  end
@@ -763,7 +776,7 @@ class VWO
763
776
  non_eligible_campaigns_key = []
764
777
  group_campaigns.each do |campaign|
765
778
  unless eligible_campaigns.include? campaign
766
- non_eligible_campaigns_key.append(campaign["key"])
779
+ non_eligible_campaigns_key.push(campaign["key"])
767
780
  end
768
781
  end
769
782
  non_eligible_campaigns_key
@@ -865,8 +878,8 @@ class VWO
865
878
  campaign_key: campaign_key,
866
879
  user_id: user_id,
867
880
  status: status,
868
- custom_variables: variation_targeting_variables,
869
- variation_name: status == StatusEnum::PASSED ? "and #{variation['name']} is Assigned" : ' ',
881
+ custom_variables: variation_targeting_variables ? variation_targeting_variables : {},
882
+ variation_name: (status == StatusEnum::PASSED && campaign['type'] != CampaignTypes::FEATURE_ROLLOUT) ? "and #{variation['name']} is Assigned" : ' ',
870
883
  segmentation_type: SegmentationTypeEnum::WHITELISTING,
871
884
  api_name: api_name
872
885
  ),
@@ -879,10 +892,9 @@ class VWO
879
892
  decision[:variation_id] = variation['id']
880
893
  if campaign['type'] == CampaignTypes::FEATURE_TEST
881
894
  decision[:is_feature_enabled] = variation['isFeatureEnabled']
882
- elsif campaign['type'] == CampaignTypes::VISUAL_AB
883
- decision[:is_user_whitelisted] = !!variation['name']
884
895
  end
885
896
  end
897
+ decision[:is_user_whitelisted] = true
886
898
  @hooks_manager.execute(decision)
887
899
  end
888
900
 
data/lib/vwo/enums.rb CHANGED
@@ -106,7 +106,7 @@ class VWO
106
106
  IMPRESSION_FOR_TRACK_USER = '(%<file>s): Impression built for track-user - %<properties>s'
107
107
  IMPRESSION_FOR_TRACK_GOAL = '(%<file>s): Impression built for track-goal - %<properties>s'
108
108
  GOT_VARIATION_FOR_USER = '(%<file>s): userId:%<user_id>s for campaign:%<campaign_key>s got variationName:%<variation_name>s'
109
- SEGMENTATION_STATUS = '(%<file>s): In API: %<api_name>s, for UserId:%<user_id>s of campaign:%<campaign_key>s with variables:%<custom_variables>s %<status>s %<segmentation_type>s for %<variation_name>s'
109
+ SEGMENTATION_STATUS = '(%<file>s): In API: %<api_name>s, for UserId:%<user_id>s of campaign:%<campaign_key>s with variables:%<custom_variables>s %<status>s %<segmentation_type>s %<variation_name>s'
110
110
  PARAMS_FOR_PUSH_CALL = '(%<file>s): Params for push call - %<properties>s'
111
111
  CAMPAIGN_NOT_ACTIVATED = '(%<file>s): Campaign:%<campaign_key>s for User ID:%<user_id>s is not yet activated for API:%<api_name>s. Use activate API to activate A/B test or isFeatureEnabled API to activate Feature Test.'
112
112
  BATCH_EVENT_LIMIT_EXCEEDED = '(%<file>s): Impression event - %<end_point>s failed due to exceeding payload size. Parameter eventsPerRequest in batchEvents config in launch API has value:%<eventsPerRequest>s for accountId:%<accountId>s. Please read the official documentation for knowing the size limits.'
@@ -128,9 +128,9 @@ class VWO
128
128
  AUDIENCE_CONDITION_NOT_MET = '(%<file>s): userId:%<user_id>s does not become part of campaign because of not meeting audience conditions'
129
129
  GOT_VARIATION_FOR_USER = '(%<file>s): userId:%<user_id>s for campaign:%<campaign_key>s got variationName:%<variation_name>s'
130
130
  USER_GOT_NO_VARIATION = '(%<file>s): userId:%<user_id>s for campaign:%<campaign_key>s did not allot any variation'
131
- IMPRESSION_SUCCESS = '(%<file>s): Impression event - %<end_point>s was successfully received by VWO having main keys: sdkKey:%<sdk_key>s accountId:%<account_id>s campaignId:%<campaign_id>s and variationId:%<variation_id>s'
132
- MAIN_KEYS_FOR_IMPRESSION = '(%<file>s): Having main keys: {sdkKey:%<sdk_key>s accountId:%<account_id>s campaignId:%<campaign_id>s and variationId:%<variation_id>s}'
133
- MAIN_KEYS_FOR_PUSH_API = '(%<file>s): Having main keys: {sdkKey:%<sdk_key>s accountId:%<account_id>s u:%<u>s and tags:%<tags>s}'
131
+ IMPRESSION_SUCCESS = '(%<file>s): Impression event - %<end_point>s was successfully received by VWO having main keys: accountId:%<account_id>s campaignId:%<campaign_id>s and variationId:%<variation_id>s'
132
+ MAIN_KEYS_FOR_IMPRESSION = '(%<file>s): Having main keys: accountId:%<account_id>s campaignId:%<campaign_id>s and variationId:%<variation_id>s}'
133
+ MAIN_KEYS_FOR_PUSH_API = '(%<file>s): Having main keys: accountId:%<account_id>s u:%<u>s and tags:%<tags>s}'
134
134
  INVALID_VARIATION_KEY = '(%<file>s): Variation was not assigned to userId:%<user_id>s for campaign:%<campaign_key>s'
135
135
 
136
136
  USER_IN_FEATURE_ROLLOUT = '(%<file>s): User ID:%<user_id>s is in feature rollout:%<campaign_key>s'
@@ -143,7 +143,7 @@ class VWO
143
143
  USER_PASSED_SEGMENTATION = '(%<file>s): UserId:%<user_id>s of campaign:%<campaign_key>s with custom_variables:%<custom_variables>s passed segmentation'
144
144
  USER_FAILED_SEGMENTATION = '(%<file>s): UserId:%<user_id>s of campaign:%<campaign_key>s with custom_variables:%<custom_variables>s failed segmentation'
145
145
 
146
- NO_CUSTOM_VARIABLES = '(%<file>s): In API: %<api_name>s, for UserId:%<user_id>s preSegments/customVariables are not passed for campaign:%<campaign_key>s and campaign has pre-segmentation'
146
+ NO_CUSTOM_VARIABLES = '(%<file>s): In API: %<api_name>s, for UserId:%<user_id>s customVariables are not passed for campaign:%<campaign_key>s and campaign has pre-segmentation'
147
147
  SKIPPING_SEGMENTATION = '(%<file>s): In API: %<api_name>s, Skipping segmentation:%<variation>s for UserId:%<user_id>s as no valid segments found in campaign:%<campaign_key>s'
148
148
 
149
149
  SEGMENTATION_STATUS = '(%<file>s): In API: %<api_name>s, for UserId:%<user_id>s of campaign:%<campaign_key>s with variables:%<custom_variables>s %<status>s %<segmentation_type>s %<variation_name>s'
@@ -73,6 +73,9 @@ class VWO
73
73
  key: {
74
74
  type: ['string']
75
75
  },
76
+ name: {
77
+ type: ['string']
78
+ },
76
79
  status: {
77
80
  type: ['string']
78
81
  },
@@ -92,6 +95,7 @@ class VWO
92
95
  }
93
96
  },
94
97
  isBucketingSeedEnabled: ['boolean'],
98
+ isUserListEnabled: ['boolean'],
95
99
  minItems: 2
96
100
  }
97
101
  },
@@ -91,11 +91,10 @@ class VWO
91
91
  # @return [Boolean]
92
92
  def evaluate_custom_variable?(operand, custom_variables)
93
93
  # Extract custom_variable_key and custom_variables_value from operand
94
-
95
94
  operand_key, operand = get_key_value(operand)
96
95
 
97
96
  # Retrieve corresponding custom_variable value from custom_variables
98
- custom_variables_value = custom_variables[operand_key]
97
+ custom_variables_value = custom_variables[operand_key.to_sym]
99
98
 
100
99
  # Pre process custom_variable value
101
100
  custom_variables_value = process_custom_variables_value(custom_variables_value)
@@ -113,7 +112,7 @@ class VWO
113
112
  def evaluate_user?(operand, custom_variables)
114
113
  users = operand.split(',')
115
114
  users.each do |user|
116
- return true if user.strip == custom_variables['_vwo_user_id']
115
+ return true if user.strip == custom_variables[:_vwo_user_id]
117
116
  end
118
117
  false
119
118
  end
@@ -78,7 +78,9 @@ class VWO
78
78
  i: @sdk_key,
79
79
  r: get_random_number,
80
80
  platform: 'server',
81
- 'api-version' => 1
81
+ 'api-version' => 1,
82
+ 'sdk-v' => VWO::CONSTANTS::SDK_VERSION,
83
+ 'sdk' => VWO::CONSTANTS::SDK_NAME
82
84
  }
83
85
  end
84
86
  end
@@ -299,7 +299,7 @@ class VWO
299
299
  group_campaign_ids.each do |campaign_id|
300
300
  settings_file["campaigns"].each do |campaign|
301
301
  if campaign["id"] == campaign_id && campaign["status"] == STATUS_RUNNING
302
- group_campaigns.append(campaign)
302
+ group_campaigns.push(campaign)
303
303
  end
304
304
  end
305
305
  end
@@ -17,6 +17,7 @@ require_relative '../logger'
17
17
  require_relative '../enums'
18
18
  require_relative '../constants'
19
19
  require_relative './impression'
20
+ require_relative './utility'
20
21
 
21
22
  # Utility module for helper math and random functions
22
23
  class VWO
@@ -25,6 +26,7 @@ class VWO
25
26
  include VWO::CONSTANTS
26
27
  include VWO::Enums
27
28
  include VWO::Utils::Impression
29
+ include VWO::Utils::Utility
28
30
 
29
31
  def get_url_params(settings_file, tag_key, tag_value, user_id, sdk_key)
30
32
  url = HTTPS_PROTOCOL + ENDPOINTS::BASE_URL + ENDPOINTS::PUSH
@@ -39,7 +41,7 @@ class VWO
39
41
  format(
40
42
  LogMessageEnum::DebugMessages::PARAMS_FOR_PUSH_CALL,
41
43
  file: FileNameEnum::CustomDimensionsUtil,
42
- properties: JSON.generate(params)
44
+ properties: remove_sensitive_properties(params)
43
45
  )
44
46
  )
45
47
  params
@@ -19,6 +19,7 @@ require_relative '../enums'
19
19
  require_relative '../constants'
20
20
  require_relative 'function'
21
21
  require_relative 'uuid'
22
+ require_relative 'utility'
22
23
 
23
24
  # Creates the impression from the arguments passed
24
25
  class VWO
@@ -28,6 +29,7 @@ class VWO
28
29
  include VWO::CONSTANTS
29
30
  include VWO::Utils::Function
30
31
  include UUID
32
+ include VWO::Utils::Utility
31
33
 
32
34
  # Creates the impression from the arguments passed
33
35
  #
@@ -76,7 +78,7 @@ class VWO
76
78
  format(
77
79
  LogMessageEnum::DebugMessages::IMPRESSION_FOR_TRACK_USER,
78
80
  file: FileNameEnum::ImpressionUtil,
79
- properties: JSON.generate(impression)
81
+ properties: remove_sensitive_properties(impression)
80
82
  )
81
83
  )
82
84
  else
@@ -88,7 +90,7 @@ class VWO
88
90
  format(
89
91
  LogMessageEnum::DebugMessages::IMPRESSION_FOR_TRACK_GOAL,
90
92
  file: FileNameEnum::ImpressionUtil,
91
- properties: JSON.generate(impression)
93
+ properties: remove_sensitive_properties(impression)
92
94
  )
93
95
  )
94
96
  end
@@ -0,0 +1,46 @@
1
+ # Copyright 2019-2021 Wingify Software Pvt. Ltd.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'json'
16
+ require_relative './validations'
17
+
18
+ # Generic utility module
19
+ class VWO
20
+ module Utils
21
+ module Utility
22
+ include Validations
23
+
24
+ # converting hash with keys as strings into hash with keys as strings
25
+ # @param[Hash]
26
+ # @return[Hash]
27
+ def convert_to_symbol_hash(hashObject)
28
+ convertedHash = {}
29
+ hashObject.each do |key, value|
30
+ if valid_hash?(value)
31
+ convertedHash[key.to_sym] = convert_to_symbol_hash(value)
32
+ else
33
+ convertedHash[key.to_sym] = value
34
+ end
35
+ end
36
+ convertedHash
37
+ end
38
+
39
+ def remove_sensitive_properties(properties)
40
+ properties.delete("env")
41
+ properties.delete("env".to_sym)
42
+ JSON.generate(properties)
43
+ end
44
+ end
45
+ end
46
+ end
data/lib/vwo.rb CHANGED
@@ -23,6 +23,7 @@ require_relative 'vwo/utils/campaign'
23
23
  require_relative 'vwo/utils/impression'
24
24
  require_relative 'vwo/utils/feature'
25
25
  require_relative 'vwo/utils/custom_dimensions'
26
+ require_relative 'vwo/utils/utility'
26
27
  require_relative 'vwo/constants'
27
28
  require_relative 'vwo/core/variation_decider'
28
29
  require_relative 'vwo/services/batch_events_dispatcher'
@@ -39,6 +40,7 @@ class VWO
39
40
  include Utils::CustomDimensions
40
41
  include Utils::Campaign
41
42
  include Utils::Impression
43
+ include Utils::Utility
42
44
  include CONSTANTS
43
45
 
44
46
  FILE = FileNameEnum::VWO
@@ -62,6 +64,7 @@ class VWO
62
64
  settings_file = nil,
63
65
  options = {}
64
66
  )
67
+ options = convert_to_symbol_hash(options)
65
68
  @account_id = account_id
66
69
  @sdk_key = sdk_key
67
70
  @user_storage = user_storage
@@ -295,9 +298,10 @@ class VWO
295
298
  return
296
299
  end
297
300
 
301
+ options = convert_to_symbol_hash(options)
298
302
  # Retrieve custom variables
299
- custom_variables = options['custom_variables'] || options[:custom_variables]
300
- variation_targeting_variables = options['variation_targeting_variables'] || options[:variation_targeting_variables]
303
+ custom_variables = options[:custom_variables]
304
+ variation_targeting_variables = options[:variation_targeting_variables]
301
305
 
302
306
  should_track_returning_user = get_should_track_returning_user(options)
303
307
  # Validate input parameters
@@ -404,7 +408,6 @@ class VWO
404
408
  format(
405
409
  LogMessageEnum::InfoMessages::IMPRESSION_SUCCESS,
406
410
  file: FILE,
407
- sdk_key: @sdk_key,
408
411
  account_id: @account_id,
409
412
  campaign_id: campaign['id'],
410
413
  variation_id: variation['id'],
@@ -468,9 +471,10 @@ class VWO
468
471
  )
469
472
  return
470
473
  end
474
+ options = convert_to_symbol_hash(options)
471
475
  # Retrieve custom variables
472
- custom_variables = options['custom_variables'] || options[:custom_variables]
473
- variation_targeting_variables = options['variation_targeting_variables'] || options[:variation_targeting_variables]
476
+ custom_variables = options[:custom_variables]
477
+ variation_targeting_variables = options[:variation_targeting_variables]
474
478
 
475
479
  # Validate input parameters
476
480
  unless valid_string?(campaign_key) && valid_string?(user_id) && (custom_variables.nil? || valid_hash?(custom_variables)) &&
@@ -579,9 +583,10 @@ class VWO
579
583
  return false
580
584
  end
581
585
 
582
- revenue_value = options['revenue_value'] || options[:revenue_value]
583
- custom_variables = options['custom_variables'] || options[:custom_variables]
584
- variation_targeting_variables = options['variation_targeting_variables'] || options[:variation_targeting_variables]
586
+ options = convert_to_symbol_hash(options)
587
+ revenue_value = options[:revenue_value]
588
+ custom_variables = options[:custom_variables]
589
+ variation_targeting_variables = options[:variation_targeting_variables]
585
590
  should_track_returning_user = get_should_track_returning_user(options)
586
591
  goal_type_to_track = get_goal_type_to_track(options)
587
592
 
@@ -719,7 +724,6 @@ class VWO
719
724
  format(
720
725
  LogMessageEnum::InfoMessages::IMPRESSION_SUCCESS,
721
726
  file: FILE,
722
- sdk_key: @sdk_key,
723
727
  account_id: @account_id,
724
728
  campaign_id: campaign['id'],
725
729
  variation_id: variation['id'],
@@ -731,7 +735,6 @@ class VWO
731
735
  format(
732
736
  LogMessageEnum::InfoMessages::MAIN_KEYS_FOR_IMPRESSION,
733
737
  file: FILE,
734
- sdk_key: @sdk_key,
735
738
  campaign_id: impression[:experiment_id],
736
739
  account_id: impression[:account_id],
737
740
  variation_id: impression[:combination]
@@ -799,9 +802,10 @@ class VWO
799
802
  return false
800
803
  end
801
804
 
805
+ options = convert_to_symbol_hash(options)
802
806
  # Retrieve custom variables
803
- custom_variables = options['custom_variables'] || options[:custom_variables]
804
- variation_targeting_variables = options['variation_targeting_variables'] || options[:variation_targeting_variables]
807
+ custom_variables = options[:custom_variables]
808
+ variation_targeting_variables = options[:variation_targeting_variables]
805
809
  should_track_returning_user = get_should_track_returning_user(options)
806
810
  @logger.log(
807
811
  LogLevelEnum::INFO,
@@ -898,7 +902,6 @@ class VWO
898
902
  LogMessageEnum::InfoMessages::MAIN_KEYS_FOR_IMPRESSION,
899
903
  file: FILE,
900
904
  campaign_id: impression[:experiment_id],
901
- sdk_key: @sdk_key,
902
905
  account_id: impression[:account_id],
903
906
  variation_id: impression[:combination]
904
907
  )
@@ -993,9 +996,10 @@ class VWO
993
996
  return
994
997
  end
995
998
 
999
+ options = convert_to_symbol_hash(options)
996
1000
  # Retrieve custom variables
997
- custom_variables = options['custom_variables'] || options[:custom_variables]
998
- variation_targeting_variables = options['variation_targeting_variables'] || options[:variation_targeting_variables]
1001
+ custom_variables = options[:custom_variables]
1002
+ variation_targeting_variables = options[:variation_targeting_variables]
999
1003
 
1000
1004
  unless valid_string?(campaign_key) && valid_string?(variable_key) && valid_string?(user_id) &&
1001
1005
  (custom_variables.nil? || valid_hash?(custom_variables)) && (variation_targeting_variables.nil? || valid_hash?(variation_targeting_variables))
@@ -1198,7 +1202,6 @@ class VWO
1198
1202
  format(
1199
1203
  LogMessageEnum::InfoMessages::MAIN_KEYS_FOR_PUSH_API,
1200
1204
  file: FILE,
1201
- sdk_key: @sdk_key,
1202
1205
  u: impression['u'],
1203
1206
  account_id: impression['account_id'],
1204
1207
  tags: impression['tags']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vwo-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.22.0
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VWO
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-02 00:00:00.000000000 Z
11
+ date: 2021-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: codecov
@@ -87,7 +87,6 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - lib/abc.txt
91
90
  - lib/vwo.rb
92
91
  - lib/vwo/constants.rb
93
92
  - lib/vwo/core/bucketer.rb
@@ -112,6 +111,7 @@ files:
112
111
  - lib/vwo/utils/impression.rb
113
112
  - lib/vwo/utils/request.rb
114
113
  - lib/vwo/utils/segment.rb
114
+ - lib/vwo/utils/utility.rb
115
115
  - lib/vwo/utils/uuid.rb
116
116
  - lib/vwo/utils/validations.rb
117
117
  homepage: https://vwo.com/fullstack/server-side-testing/
data/lib/abc.txt DELETED
@@ -1,28 +0,0 @@
1
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
2
- GOT_ELIGIBLE_CAMPAIGNS
3
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
4
- GOT_ELIGIBLE_CAMPAIGNS
5
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
6
- GOT_ELIGIBLE_CAMPAIGNS
7
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
8
- GOT_ELIGIBLE_CAMPAIGNS
9
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
10
- GOT_ELIGIBLE_CAMPAIGNS
11
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
12
- GOT_ELIGIBLE_CAMPAIGNS
13
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
14
- GOT_ELIGIBLE_CAMPAIGNS
15
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
16
- GOT_ELIGIBLE_CAMPAIGNS
17
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
18
- GOT_ELIGIBLE_CAMPAIGNS
19
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
20
- GOT_ELIGIBLE_CAMPAIGNS
21
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
22
- GOT_ELIGIBLE_CAMPAIGNS
23
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
24
- GOT_ELIGIBLE_CAMPAIGNS
25
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
26
- GOT_ELIGIBLE_CAMPAIGNS
27
- {"user_id"=>"Ashley", "variation_name"=>"Control", "campaign_key"=>"DEV_TEST_162"}
28
- GOT_ELIGIBLE_CAMPAIGNS