vwo-sdk 1.25.0 → 1.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/vwo/constants.rb +3 -2
- data/lib/vwo/core/bucketer.rb +1 -1
- data/lib/vwo/core/variation_decider.rb +1 -1
- data/lib/vwo/enums.rb +3 -1
- data/lib/vwo/logger.rb +1 -1
- data/lib/vwo/schemas/settings_file.rb +4 -1
- data/lib/vwo/services/batch_events_dispatcher.rb +4 -2
- data/lib/vwo/services/batch_events_queue.rb +1 -1
- data/lib/vwo/services/event_dispatcher.rb +4 -2
- data/lib/vwo/services/hooks_manager.rb +1 -1
- data/lib/vwo/services/operand_evaluator.rb +1 -1
- data/lib/vwo/services/segment_evaluator.rb +1 -1
- data/lib/vwo/services/settings_file_manager.rb +1 -1
- data/lib/vwo/services/settings_file_processor.rb +1 -1
- data/lib/vwo/services/usage_stats.rb +1 -1
- data/lib/vwo/user_storage.rb +1 -1
- data/lib/vwo/utils/campaign.rb +1 -1
- data/lib/vwo/utils/custom_dimensions.rb +2 -2
- data/lib/vwo/utils/data_location_manager.rb +46 -0
- data/lib/vwo/utils/feature.rb +1 -1
- data/lib/vwo/utils/function.rb +1 -1
- data/lib/vwo/utils/impression.rb +3 -4
- data/lib/vwo/utils/request.rb +1 -1
- data/lib/vwo/utils/segment.rb +1 -1
- data/lib/vwo/utils/utility.rb +10 -1
- data/lib/vwo/utils/uuid.rb +1 -1
- data/lib/vwo/utils/validations.rb +1 -1
- data/lib/vwo.rb +96 -8
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6441e86fb035c61a71233efc6b806be9e5f9bb0ef7a36e4eb20b1de9ddec7f82
|
4
|
+
data.tar.gz: 9e027431282f2fc73d45759590999ce85c3a8745cbedb3725e22da592254ee87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04dbb5829f1a23dc90b54ae403f93a6c1b8d9f25fccbcce4f94da401faf218aaf0ad928ea555d064043db06c63ddfa5a6373371ebb7f786cdd6e05ce3866dd2a
|
7
|
+
data.tar.gz: e1c2f58fb4150a4b76dfcb0da80c1040cd720e9cb0d94b0a7669ec297cef23f9ab5f1ab67711159a8bbb22ce0a749a04039acc24ff2b5063c98df070f64b4706
|
data/lib/vwo/constants.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -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.
|
30
|
+
SDK_VERSION = '1.29.0'
|
31
31
|
SDK_NAME = 'ruby'
|
32
32
|
VWO_DELIMITER = '_vwo_'
|
33
33
|
MAX_EVENTS_PER_REQUEST = 5000
|
@@ -102,6 +102,7 @@ class VWO
|
|
102
102
|
PUSH = 'push'
|
103
103
|
GET_AND_UPDATE_SETTINGS_FILE = 'get_and_update_settings_file'
|
104
104
|
FLUSH_EVENTS = 'flush_events'
|
105
|
+
OPT_OUT = 'opt_out'
|
105
106
|
end
|
106
107
|
|
107
108
|
module PushApi
|
data/lib/vwo/core/bucketer.rb
CHANGED
data/lib/vwo/enums.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -164,6 +164,8 @@ class VWO
|
|
164
164
|
GOT_ELIGIBLE_CAMPAIGNS = "(%<file>s): Got %<no_of_eligible_campaigns>s eligible winners out of %<no_of_group_campaigns>s from the Group:%<group_name>s and for User ID:%<user_id>s"
|
165
165
|
CALLED_CAMPAIGN_NOT_WINNER = "(%<file>s): Campaign:%<campaign_key>s does not qualify from the mutually exclusive group:%<group_name>s for User ID:%<user_id>s"
|
166
166
|
OTHER_CAMPAIGN_SATISFIES_WHITELISTING_OR_STORAGE = "(%<file>s): Campaign:%<campaign_key>s of Group:%<group_name>s satisfies %<type>s for User ID:%<user_id>s"
|
167
|
+
OPT_OUT_API_CALLED = "(%<file>s): You have opted out for not tracking i.e. all API calls will stop functioning and will simply early return"
|
168
|
+
API_NOT_ENABLED = "(%<file>s): %<api>s API is disabled as you opted out for tracking. Reinitialize the SDK to enable the normal functioning of all APIs."
|
167
169
|
end
|
168
170
|
|
169
171
|
# Warning Messages
|
data/lib/vwo/logger.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -29,6 +29,9 @@ class VWO
|
|
29
29
|
isEventArchEnabled: {
|
30
30
|
type: ['boolean']
|
31
31
|
},
|
32
|
+
collectionPrefix: {
|
33
|
+
type: ['string']
|
34
|
+
},
|
32
35
|
campaigns: {
|
33
36
|
if: {
|
34
37
|
type: 'array'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -15,10 +15,12 @@
|
|
15
15
|
require_relative '../logger'
|
16
16
|
require_relative '../enums'
|
17
17
|
require_relative '../utils/request'
|
18
|
+
require_relative '../utils/utility'
|
18
19
|
class VWO
|
19
20
|
module Services
|
20
21
|
class BatchEventsDispatcher
|
21
22
|
include VWO::Enums
|
23
|
+
include VWO::Utils::Utility
|
22
24
|
# Initialize the BatchEventDispatcher with logger and development mode
|
23
25
|
#
|
24
26
|
# @param [Boolean] : To specify whether the request
|
@@ -36,7 +38,7 @@ class VWO
|
|
36
38
|
# @return[Boolean]
|
37
39
|
#
|
38
40
|
def dispatch(impression, callback, query_params)
|
39
|
-
url = CONSTANTS::HTTPS_PROTOCOL + CONSTANTS::ENDPOINTS::
|
41
|
+
url = CONSTANTS::HTTPS_PROTOCOL + get_url(CONSTANTS::ENDPOINTS::BATCH_EVENTS)
|
40
42
|
account_id = query_params[:a]
|
41
43
|
resp = VWO::Utils::Request.post(url, query_params, impression)
|
42
44
|
if resp.code == '200'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -15,6 +15,7 @@
|
|
15
15
|
require_relative '../logger'
|
16
16
|
require_relative '../enums'
|
17
17
|
require_relative '../utils/request'
|
18
|
+
require_relative '../utils/utility'
|
18
19
|
require_relative '../constants'
|
19
20
|
|
20
21
|
class VWO
|
@@ -22,6 +23,7 @@ class VWO
|
|
22
23
|
class EventDispatcher
|
23
24
|
include VWO::Enums
|
24
25
|
include VWO::CONSTANTS
|
26
|
+
include Utils::Utility
|
25
27
|
|
26
28
|
EXCLUDE_KEYS = ['url'].freeze
|
27
29
|
|
@@ -69,7 +71,7 @@ class VWO
|
|
69
71
|
def dispatch_event_arch_post(params, post_data)
|
70
72
|
return true if @is_development_mode
|
71
73
|
|
72
|
-
url = HTTPS_PROTOCOL + ENDPOINTS::
|
74
|
+
url = HTTPS_PROTOCOL + get_url(ENDPOINTS::EVENTS)
|
73
75
|
resp = VWO::Utils::Request.event_post(url, params, post_data, SDK_NAME)
|
74
76
|
if resp.code == '200'
|
75
77
|
@logger.log(
|
data/lib/vwo/user_storage.rb
CHANGED
data/lib/vwo/utils/campaign.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -29,7 +29,7 @@ class VWO
|
|
29
29
|
include VWO::Utils::Utility
|
30
30
|
|
31
31
|
def get_url_params(settings_file, tag_key, tag_value, user_id, sdk_key)
|
32
|
-
url = HTTPS_PROTOCOL + ENDPOINTS::
|
32
|
+
url = HTTPS_PROTOCOL + get_url(ENDPOINTS::PUSH)
|
33
33
|
tag = { 'u' => {} }
|
34
34
|
tag['u'][tag_key] = tag_value
|
35
35
|
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright 2019-2022 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
|
+
|
16
|
+
require_relative '../constants'
|
17
|
+
|
18
|
+
# Utility module for generating uuid
|
19
|
+
class VWO
|
20
|
+
module Utils
|
21
|
+
class DataLocationManager
|
22
|
+
|
23
|
+
@@instance = nil
|
24
|
+
|
25
|
+
def self.get_instance
|
26
|
+
if @@instance.nil?
|
27
|
+
@@instance = self.new
|
28
|
+
end
|
29
|
+
@@instance
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def get_data_location
|
34
|
+
url = VWO::CONSTANTS::ENDPOINTS::BASE_URL
|
35
|
+
if @settings.key?("collectionPrefix")
|
36
|
+
url = url + '/' + @settings["collectionPrefix"]
|
37
|
+
end
|
38
|
+
url
|
39
|
+
end
|
40
|
+
|
41
|
+
def set_settings(settings)
|
42
|
+
@settings = settings
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/vwo/utils/feature.rb
CHANGED
data/lib/vwo/utils/function.rb
CHANGED
data/lib/vwo/utils/impression.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -67,12 +67,11 @@ class VWO
|
|
67
67
|
|
68
68
|
impression = usage_stats.merge(impression)
|
69
69
|
|
70
|
-
url = HTTPS_PROTOCOL + ENDPOINTS::BASE_URL
|
71
70
|
logger = VWO::Logger.get_instance
|
72
71
|
|
73
72
|
if is_track_user_api
|
74
73
|
impression['ed'] = JSON.generate(p: 'server')
|
75
|
-
impression['url'] =
|
74
|
+
impression['url'] = HTTPS_PROTOCOL + get_url(ENDPOINTS::TRACK_USER)
|
76
75
|
logger.log(
|
77
76
|
LogLevelEnum::DEBUG,
|
78
77
|
format(
|
@@ -82,7 +81,7 @@ class VWO
|
|
82
81
|
)
|
83
82
|
)
|
84
83
|
else
|
85
|
-
impression['url'] =
|
84
|
+
impression['url'] = HTTPS_PROTOCOL + get_url(ENDPOINTS::TRACK_GOAL)
|
86
85
|
impression['goal_id'] = goal_id
|
87
86
|
impression['r'] = revenue if revenue
|
88
87
|
logger.log(
|
data/lib/vwo/utils/request.rb
CHANGED
data/lib/vwo/utils/segment.rb
CHANGED
data/lib/vwo/utils/utility.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,17 +14,22 @@
|
|
14
14
|
|
15
15
|
require 'json'
|
16
16
|
require_relative './validations'
|
17
|
+
require_relative './data_location_manager'
|
18
|
+
require_relative '../constants'
|
17
19
|
|
18
20
|
# Generic utility module
|
19
21
|
class VWO
|
20
22
|
module Utils
|
21
23
|
module Utility
|
22
24
|
include Validations
|
25
|
+
include VWO::Utils
|
26
|
+
include VWO::CONSTANTS
|
23
27
|
|
24
28
|
# converting hash with keys as strings into hash with keys as strings
|
25
29
|
# @param[Hash]
|
26
30
|
# @return[Hash]
|
27
31
|
def convert_to_symbol_hash(hashObject)
|
32
|
+
hashObject ||= {}
|
28
33
|
convertedHash = {}
|
29
34
|
hashObject.each do |key, value|
|
30
35
|
if valid_hash?(value)
|
@@ -41,6 +46,10 @@ class VWO
|
|
41
46
|
properties.delete("env".to_sym)
|
42
47
|
JSON.generate(properties)
|
43
48
|
end
|
49
|
+
|
50
|
+
def get_url(endpoint)
|
51
|
+
return DataLocationManager.get_instance().get_data_location + endpoint
|
52
|
+
end
|
44
53
|
end
|
45
54
|
end
|
46
55
|
end
|
data/lib/vwo/utils/uuid.rb
CHANGED
data/lib/vwo.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2019-
|
1
|
+
# Copyright 2019-2022 Wingify Software Pvt. Ltd.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -24,6 +24,7 @@ require_relative 'vwo/utils/impression'
|
|
24
24
|
require_relative 'vwo/utils/feature'
|
25
25
|
require_relative 'vwo/utils/custom_dimensions'
|
26
26
|
require_relative 'vwo/utils/utility'
|
27
|
+
require_relative 'vwo/utils/data_location_manager'
|
27
28
|
require_relative 'vwo/constants'
|
28
29
|
require_relative 'vwo/core/variation_decider'
|
29
30
|
require_relative 'vwo/services/batch_events_dispatcher'
|
@@ -41,6 +42,7 @@ class VWO
|
|
41
42
|
include Utils::Campaign
|
42
43
|
include Utils::Impression
|
43
44
|
include Utils::Utility
|
45
|
+
include VWO::Utils
|
44
46
|
include CONSTANTS
|
45
47
|
|
46
48
|
FILE = FileNameEnum::VWO
|
@@ -65,6 +67,7 @@ class VWO
|
|
65
67
|
options = {}
|
66
68
|
)
|
67
69
|
options = convert_to_symbol_hash(options)
|
70
|
+
@is_opted_out = false
|
68
71
|
@account_id = account_id
|
69
72
|
@sdk_key = sdk_key
|
70
73
|
@user_storage = user_storage
|
@@ -122,6 +125,7 @@ class VWO
|
|
122
125
|
# Process the settings file
|
123
126
|
@config.process_settings_file
|
124
127
|
@settings_file = @config.get_settings_file
|
128
|
+
DataLocationManager.get_instance().set_settings(@settings_file)
|
125
129
|
|
126
130
|
@usage_stats = VWO::Services::UsageStats.new(usage_stats, @is_development_mode)
|
127
131
|
|
@@ -208,6 +212,10 @@ class VWO
|
|
208
212
|
# VWO get_settings method to get settings for a particular account_id
|
209
213
|
def get_and_update_settings_file
|
210
214
|
|
215
|
+
if is_opted_out(ApiMethods::GET_AND_UPDATE_SETTINGS_FILE)
|
216
|
+
return false
|
217
|
+
end
|
218
|
+
|
211
219
|
unless @is_instance_valid
|
212
220
|
@logger.log(
|
213
221
|
LogLevelEnum::ERROR,
|
@@ -217,7 +225,7 @@ class VWO
|
|
217
225
|
api_name: ApiMethods.GET_AND_UPDATE_SETTINGS_FILE
|
218
226
|
)
|
219
227
|
)
|
220
|
-
return
|
228
|
+
return false
|
221
229
|
end
|
222
230
|
|
223
231
|
latest_settings = @settings_file_manager.get_settings_file(true)
|
@@ -267,6 +275,10 @@ class VWO
|
|
267
275
|
# otherwise null in case of user not becoming part
|
268
276
|
|
269
277
|
def activate(campaign_key, user_id, options = {})
|
278
|
+
if is_opted_out(ApiMethods::ACTIVATE)
|
279
|
+
return nil
|
280
|
+
end
|
281
|
+
|
270
282
|
unless @is_instance_valid
|
271
283
|
@logger.log(
|
272
284
|
LogLevelEnum::ERROR,
|
@@ -444,6 +456,10 @@ class VWO
|
|
444
456
|
# Otherwise null in case of user not becoming part
|
445
457
|
#
|
446
458
|
def get_variation_name(campaign_key, user_id, options = {})
|
459
|
+
if is_opted_out(ApiMethods::GET_VARIATION_NAME)
|
460
|
+
return nil
|
461
|
+
end
|
462
|
+
|
447
463
|
unless @is_instance_valid
|
448
464
|
@logger.log(
|
449
465
|
LogLevelEnum::ERROR,
|
@@ -555,6 +571,10 @@ class VWO
|
|
555
571
|
#
|
556
572
|
|
557
573
|
def track(campaign_key, user_id, goal_identifier, options = {})
|
574
|
+
if is_opted_out(ApiMethods::TRACK)
|
575
|
+
return false
|
576
|
+
end
|
577
|
+
|
558
578
|
unless @is_instance_valid
|
559
579
|
@logger.log(
|
560
580
|
LogLevelEnum::ERROR,
|
@@ -786,6 +806,10 @@ class VWO
|
|
786
806
|
# @return[Boolean] true if user becomes part of feature test/rollout, otherwise false.
|
787
807
|
|
788
808
|
def feature_enabled?(campaign_key, user_id, options = {})
|
809
|
+
if is_opted_out(ApiMethods::IS_FEATURE_ENABLED)
|
810
|
+
return false
|
811
|
+
end
|
812
|
+
|
789
813
|
unless @is_instance_valid
|
790
814
|
@logger.log(
|
791
815
|
LogLevelEnum::ERROR,
|
@@ -983,13 +1007,17 @@ class VWO
|
|
983
1007
|
#
|
984
1008
|
|
985
1009
|
def get_feature_variable_value(campaign_key, variable_key, user_id, options = {})
|
1010
|
+
if is_opted_out(ApiMethods::GET_FEATURE_VARIABLE_VALUE)
|
1011
|
+
return nil
|
1012
|
+
end
|
1013
|
+
|
986
1014
|
unless @is_instance_valid
|
987
1015
|
@logger.log(
|
988
1016
|
LogLevelEnum::ERROR,
|
989
1017
|
format(
|
990
1018
|
LogMessageEnum::ErrorMessages::API_CONFIG_CORRUPTED,
|
991
1019
|
file: FILE,
|
992
|
-
api_name: ApiMethods
|
1020
|
+
api_name: ApiMethods::GET_FEATURE_VARIABLE_VALUE
|
993
1021
|
)
|
994
1022
|
)
|
995
1023
|
return
|
@@ -1137,16 +1165,20 @@ class VWO
|
|
1137
1165
|
# @return true if call is made successfully, else false
|
1138
1166
|
|
1139
1167
|
def push(tag_key, tag_value, user_id = nil)
|
1168
|
+
if is_opted_out(ApiMethods::PUSH)
|
1169
|
+
return false
|
1170
|
+
end
|
1171
|
+
|
1140
1172
|
unless @is_instance_valid
|
1141
1173
|
@logger.log(
|
1142
1174
|
LogLevelEnum::ERROR,
|
1143
1175
|
format(
|
1144
1176
|
LogMessageEnum::ErrorMessages::API_CONFIG_CORRUPTED,
|
1145
1177
|
file: FILE,
|
1146
|
-
api_name: ApiMethods
|
1178
|
+
api_name: ApiMethods::PUSH
|
1147
1179
|
)
|
1148
1180
|
)
|
1149
|
-
return
|
1181
|
+
return false
|
1150
1182
|
end
|
1151
1183
|
|
1152
1184
|
# Argument reshuffling.
|
@@ -1245,6 +1277,10 @@ class VWO
|
|
1245
1277
|
end
|
1246
1278
|
|
1247
1279
|
def flush_events
|
1280
|
+
if is_opted_out(ApiMethods::FLUSH_EVENTS)
|
1281
|
+
return false
|
1282
|
+
end
|
1283
|
+
|
1248
1284
|
unless @is_instance_valid
|
1249
1285
|
@logger.log(
|
1250
1286
|
LogLevelEnum::ERROR,
|
@@ -1254,10 +1290,13 @@ class VWO
|
|
1254
1290
|
api_name: ApiMethods::FLUSH_EVENTS
|
1255
1291
|
)
|
1256
1292
|
)
|
1257
|
-
return
|
1293
|
+
return false
|
1294
|
+
end
|
1295
|
+
result = false
|
1296
|
+
if defined?(@batch_events) && !@batch_events_queue.nil?
|
1297
|
+
result = @batch_events_queue.flush(manual: true)
|
1298
|
+
@batch_events_queue.kill_thread
|
1258
1299
|
end
|
1259
|
-
result = @batch_events_queue.flush(manual: true)
|
1260
|
-
@batch_events_queue.kill_thread
|
1261
1300
|
result
|
1262
1301
|
rescue StandardError => e
|
1263
1302
|
@logger.log(
|
@@ -1294,6 +1333,55 @@ class VWO
|
|
1294
1333
|
goal_type_to_track
|
1295
1334
|
end
|
1296
1335
|
|
1336
|
+
# Manually opting out of VWO SDK, No tracking will happen
|
1337
|
+
#
|
1338
|
+
# return[bool]
|
1339
|
+
#
|
1340
|
+
def set_opt_out
|
1341
|
+
@logger.log(
|
1342
|
+
LogLevelEnum::INFO,
|
1343
|
+
format(
|
1344
|
+
LogMessageEnum::InfoMessages::OPT_OUT_API_CALLED,
|
1345
|
+
file: FILE
|
1346
|
+
)
|
1347
|
+
)
|
1348
|
+
if defined?(@batch_events) && !@batch_events_queue.nil?
|
1349
|
+
@batch_events_queue.flush(manual: true)
|
1350
|
+
@batch_events_queue.kill_thread
|
1351
|
+
end
|
1352
|
+
|
1353
|
+
@is_opted_out = true
|
1354
|
+
@settings_file = nil
|
1355
|
+
@user_storage = nil
|
1356
|
+
@event_dispatcher = nil
|
1357
|
+
@variation_decider = nil
|
1358
|
+
@config = nil
|
1359
|
+
@usage_stats = nil
|
1360
|
+
@batch_event_dispatcher = nil
|
1361
|
+
@batch_events_queue = nil
|
1362
|
+
@batch_events = nil
|
1363
|
+
|
1364
|
+
return @is_opted_out
|
1365
|
+
end
|
1366
|
+
|
1367
|
+
|
1368
|
+
# Check if VWO SDK is manually opted out
|
1369
|
+
# @param[String] :api_name api_name is used in logging
|
1370
|
+
# @return[bool]
|
1371
|
+
def is_opted_out(api_name)
|
1372
|
+
if @is_opted_out
|
1373
|
+
@logger.log(
|
1374
|
+
LogLevelEnum::INFO,
|
1375
|
+
format(
|
1376
|
+
LogMessageEnum::InfoMessages::API_NOT_ENABLED,
|
1377
|
+
file: FILE,
|
1378
|
+
api: api_name
|
1379
|
+
)
|
1380
|
+
)
|
1381
|
+
end
|
1382
|
+
return @is_opted_out
|
1383
|
+
end
|
1384
|
+
|
1297
1385
|
def is_event_arch_enabled
|
1298
1386
|
return @settings_file.key?('isEventArchEnabled') && @settings_file['isEventArchEnabled']
|
1299
1387
|
end
|
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.
|
4
|
+
version: 1.29.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VWO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codecov
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- lib/vwo/user_storage.rb
|
107
107
|
- lib/vwo/utils/campaign.rb
|
108
108
|
- lib/vwo/utils/custom_dimensions.rb
|
109
|
+
- lib/vwo/utils/data_location_manager.rb
|
109
110
|
- lib/vwo/utils/feature.rb
|
110
111
|
- lib/vwo/utils/function.rb
|
111
112
|
- lib/vwo/utils/impression.rb
|