optimizely_server_side 1.2.2 → 2.0.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 +5 -5
- data/Changelog.md +4 -0
- data/Gemfile.lock +2 -2
- data/lib/optimizely_server_side/helpers/support.rb +31 -5
- data/optimizely_server_side.gemspec +2 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 495e3100088096055c65af170d0f206ff2860fa8bc7283c1850814a03fb2574f
|
4
|
+
data.tar.gz: ae71ecf19eefced00297911b1d9ea441f7d96dc168e51b863192e77ee7c76e57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f9c0ded26d5de9feb2603ba7626b7a794276145d51e4ab56be22259488d888b04064de17c0c6d82cfd66fe630aebc44da9e9f875a7553386623fbec29b24205
|
7
|
+
data.tar.gz: 154826914c621ccfcabe0e39abacf1a8922b5e379b82e928e385b70224adea028c995adb4dd96e9e599a55d8e318f1b53b89440a6b463ca71b270ed9a0d326a2
|
data/Changelog.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
optimizely_server_side (
|
4
|
+
optimizely_server_side (2.0.0)
|
5
5
|
activesupport (>= 4.2.6)
|
6
6
|
optimizely-sdk (~> 2.0)
|
7
7
|
|
@@ -33,7 +33,7 @@ GEM
|
|
33
33
|
minitest (5.11.3)
|
34
34
|
multi_xml (0.6.0)
|
35
35
|
murmurhash3 (0.1.6)
|
36
|
-
optimizely-sdk (2.
|
36
|
+
optimizely-sdk (2.1.1)
|
37
37
|
httparty (~> 0.11)
|
38
38
|
json-schema (~> 2.6)
|
39
39
|
murmurhash3 (~> 0.1)
|
@@ -24,17 +24,43 @@ module OptimizelyServerSide
|
|
24
24
|
def experiment(experiment_key, options = {}, &blk)
|
25
25
|
# Merge any other options to user attributes
|
26
26
|
OptimizelyServerSide.configuration.user_attributes.merge!(options.stringify_keys)
|
27
|
-
variation_key = optimizely_sdk_project_instance(experiment_key)
|
27
|
+
variation_key = optimizely_sdk_project_instance(experiment_key, "experiment")
|
28
28
|
OptimizelyServerSide::Experiment.new(experiment_key, variation_key).start(&blk)
|
29
29
|
end
|
30
30
|
alias_method :feature_flip, :experiment
|
31
31
|
|
32
|
-
def optimizely_sdk_project_instance(experiment_key)
|
32
|
+
def optimizely_sdk_project_instance(experiment_key, type)
|
33
|
+
case type
|
34
|
+
when "experiment"
|
35
|
+
get_optimizely_instance.activate(experiment_key, visitor_id, user_attributes)
|
36
|
+
when "feature"
|
37
|
+
get_optimizely_instance.is_feature_enabled(experiment_key, visitor_id, user_attributes)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def feature_test(experiment_key, options = {})
|
42
|
+
OptimizelyServerSide.configuration.user_attributes.merge!(options.stringify_keys)
|
43
|
+
optimizely_sdk_project_instance(experiment_key, "feature")
|
44
|
+
end
|
45
|
+
|
46
|
+
[:string, :boolean, :integer, :double].each do |type|
|
47
|
+
define_method :"get_feature_variable_#{type}" do |experiment, variable_name |
|
48
|
+
method = get_optimizely_instance.method("get_feature_variable_#{type}")
|
49
|
+
method.call(experiment, variable_name, visitor_id )
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def visitor_id
|
54
|
+
OptimizelyServerSide.configuration.user_attributes['visitor_id']
|
55
|
+
end
|
56
|
+
|
57
|
+
def user_attributes
|
58
|
+
OptimizelyServerSide.configuration.user_attributes.reject { |k,v| k == 'visitor_id'}
|
59
|
+
end
|
60
|
+
|
61
|
+
def get_optimizely_instance
|
33
62
|
OptimizelyServerSide::OptimizelySdk
|
34
63
|
.project_instance(event_dispatcher: OptimizelyServerSide.configuration.event_dispatcher)
|
35
|
-
.activate(experiment_key,
|
36
|
-
OptimizelyServerSide.configuration.user_attributes['visitor_id'],
|
37
|
-
OptimizelyServerSide.configuration.user_attributes.reject { |k,v| k == 'visitor_id'})
|
38
64
|
end
|
39
65
|
|
40
66
|
end
|
@@ -2,8 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'optimizely_server_side'
|
5
|
-
s.version = '
|
6
|
-
s.date = '2018-05-22'
|
5
|
+
s.version = '2.0.0'
|
7
6
|
s.summary = "Optimizely server side. A wrapper on top of optimizely's ruby sdk for easy caching of server side config "
|
8
7
|
s.description = "Optimizely server side. A A/B test wrapper on top of optimizely's ruby sdk for easy caching of server side config and exposing few more utility helpers. Handling of fallbacks and marking primary experiments. "
|
9
8
|
s.authors = ["Ankit Gupta"]
|
@@ -19,4 +18,4 @@ Gem::Specification.new do |s|
|
|
19
18
|
s.add_development_dependency 'webmock', '~> 2.1'
|
20
19
|
s.add_runtime_dependency 'optimizely-sdk' , '~> 2.0'
|
21
20
|
s.add_runtime_dependency 'activesupport', '>= 4.2.6'
|
22
|
-
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: optimizely_server_side
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ankit Gupta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.
|
124
|
+
rubygems_version: 2.7.7
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Optimizely server side. A wrapper on top of optimizely's ruby sdk for easy
|