splitclient-rb 5.0.3.pre.rc1-java → 5.1.0-java
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 +4 -4
- data/.rubocop.yml +15 -0
- data/CHANGES.txt +8 -1
- data/Detailed-README.md +246 -313
- data/Gemfile +2 -0
- data/NEWS +12 -2
- data/Rakefile +6 -2
- data/exe/splitio +20 -20
- data/lib/splitclient-rb.rb +1 -0
- data/lib/splitclient-rb/engine/api/client.rb +1 -2
- data/lib/splitclient-rb/engine/api/segments.rb +33 -27
- data/lib/splitclient-rb/engine/api/splits.rb +22 -17
- data/lib/splitclient-rb/split_config.rb +1 -1
- data/lib/splitclient-rb/split_logger.rb +29 -0
- data/lib/splitclient-rb/version.rb +1 -1
- data/splitclient-rb.gemspec +38 -34
- data/tasks/benchmark_get_treatment.rake +31 -17
- data/tasks/irb.rake +5 -3
- data/tasks/rspec.rake +3 -1
- metadata +69 -25
@@ -1,13 +1,17 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc 'Benchmark the get_treatment method call in 4 threads'
|
2
4
|
|
3
5
|
# Usage:
|
4
|
-
# rake concurrent_benchmark api_key=YOUR_API_KEY base_uri=YOUR_API_BASE_URI
|
6
|
+
# rake concurrent_benchmark api_key=YOUR_API_KEY base_uri=YOUR_API_BASE_URI
|
7
|
+
# [iterations=NUMBER_OF_ITERATIONS] [user_id=A_USER_ID] [feature_id=A_FEATURE_ID]
|
5
8
|
task :concurrent_benchmark do
|
6
9
|
require 'benchmark'
|
7
10
|
require 'splitclient-rb'
|
8
11
|
|
9
|
-
usage_message =
|
10
|
-
|
12
|
+
usage_message = 'Usage: rake concurrent_benchmark api_key=YOUR_API_KEY base_uri=YOUR_API_BASE_URI \
|
13
|
+
[iterations=NUMBER_OF_ITERATIONS] [user_id=A_USER_ID] [feature_id=A_FEATURE_ID]'
|
14
|
+
|
11
15
|
if validate_params
|
12
16
|
execute
|
13
17
|
else
|
@@ -19,25 +23,35 @@ def validate_params
|
|
19
23
|
!ENV['api_key'].nil? && !ENV['base_uri'].nil?
|
20
24
|
end
|
21
25
|
|
22
|
-
def
|
23
|
-
api_key = ENV['api_key'].nil? ?
|
24
|
-
base_uri = ENV['base_uri'].nil? ?
|
25
|
-
|
26
|
-
|
27
|
-
feature_id = ENV['feature_id'].nil? ? "sample_feature" : ENV['feature_id']
|
26
|
+
def split_client
|
27
|
+
api_key = ENV['api_key'].nil? ? 'fake_api_key' : ENV['api_key']
|
28
|
+
base_uri = ENV['base_uri'].nil? ? 'fake/api/' : ENV['base_uri']
|
29
|
+
SplitIoClient::SplitFactory.new(api_key, base_uri: base_uri, logger: Logger.new('/dev/null').client)
|
30
|
+
end
|
28
31
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
+
def times_per_thread
|
33
|
+
iterations = ENV['iterations'].nil? ? 1_000_000 : ENV['iterations'].to_i
|
34
|
+
iterations / 4
|
35
|
+
end
|
32
36
|
|
33
|
-
|
34
|
-
|
37
|
+
def feature_id
|
38
|
+
ENV['feature_id'].nil? ? 'sample_feature' : ENV['feature_id']
|
39
|
+
end
|
40
|
+
|
41
|
+
def user_id
|
42
|
+
ENV['user_id'].nil? ? 'fake_id_1' : ENV['user_id']
|
43
|
+
end
|
44
|
+
|
45
|
+
def execute
|
46
|
+
threads = []
|
47
|
+
puts Benchmark.measure do
|
48
|
+
4.times do |_i|
|
35
49
|
threads << Thread.new do
|
36
50
|
times_per_thread.times do
|
37
|
-
split_client.get_treatment user_id, feature_id,
|
51
|
+
split_client.get_treatment user_id, feature_id, attr: 123
|
38
52
|
end
|
39
53
|
end
|
40
54
|
end
|
41
55
|
threads.map(&:join)
|
42
|
-
|
56
|
+
end
|
43
57
|
end
|
data/tasks/irb.rake
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
desc 'Open an irb session preloaded with this library'
|
2
4
|
task :irb do
|
3
|
-
sh
|
4
|
-
end
|
5
|
+
sh 'irb -rubygems -I lib -r splitclient-rb.rb'
|
6
|
+
end
|
data/tasks/rspec.rake
CHANGED
metadata
CHANGED
@@ -1,50 +1,50 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: splitclient-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0
|
4
|
+
version: 5.1.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
|
-
- - "
|
16
|
+
- - ">="
|
17
17
|
- !ruby/object:Gem::Version
|
18
|
-
version: '
|
19
|
-
name:
|
18
|
+
version: '0'
|
19
|
+
name: allocation_stats
|
20
20
|
prerelease: false
|
21
21
|
type: :development
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - "~>"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
name:
|
32
|
+
version: '1.11'
|
33
|
+
name: bundler
|
34
34
|
prerelease: false
|
35
35
|
type: :development
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.11'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
|
-
name:
|
47
|
+
name: pry
|
48
48
|
prerelease: false
|
49
49
|
type: :development
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
|
-
name:
|
61
|
+
name: pry-nav
|
62
62
|
prerelease: false
|
63
63
|
type: :development
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -66,13 +66,27 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '10.0'
|
75
|
+
name: rake
|
76
|
+
prerelease: false
|
77
|
+
type: :development
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
requirement: !ruby/object:Gem::Requirement
|
71
85
|
requirements:
|
72
86
|
- - ">="
|
73
87
|
- !ruby/object:Gem::Version
|
74
88
|
version: '0'
|
75
|
-
name:
|
89
|
+
name: rake-compiler
|
76
90
|
prerelease: false
|
77
91
|
type: :development
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -86,7 +100,7 @@ dependencies:
|
|
86
100
|
- - ">="
|
87
101
|
- !ruby/object:Gem::Version
|
88
102
|
version: '0'
|
89
|
-
name:
|
103
|
+
name: rspec
|
90
104
|
prerelease: false
|
91
105
|
type: :development
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -100,7 +114,7 @@ dependencies:
|
|
100
114
|
- - ">="
|
101
115
|
- !ruby/object:Gem::Version
|
102
116
|
version: '0'
|
103
|
-
name:
|
117
|
+
name: rubocop
|
104
118
|
prerelease: false
|
105
119
|
type: :development
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -113,29 +127,29 @@ dependencies:
|
|
113
127
|
requirements:
|
114
128
|
- - ">="
|
115
129
|
- !ruby/object:Gem::Version
|
116
|
-
version: '
|
117
|
-
name:
|
130
|
+
version: '0'
|
131
|
+
name: simplecov
|
118
132
|
prerelease: false
|
119
|
-
type: :
|
133
|
+
type: :development
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - ">="
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
requirement: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
142
|
- - ">="
|
129
143
|
- !ruby/object:Gem::Version
|
130
|
-
version: '0
|
131
|
-
name:
|
144
|
+
version: '0'
|
145
|
+
name: webmock
|
132
146
|
prerelease: false
|
133
|
-
type: :
|
147
|
+
type: :development
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
requirement: !ruby/object:Gem::Requirement
|
141
155
|
requirements:
|
@@ -164,6 +178,20 @@ dependencies:
|
|
164
178
|
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0.8'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
requirement: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '1.8'
|
187
|
+
name: json
|
188
|
+
prerelease: false
|
189
|
+
type: :runtime
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '1.8'
|
167
195
|
- !ruby/object:Gem::Dependency
|
168
196
|
requirement: !ruby/object:Gem::Requirement
|
169
197
|
requirements:
|
@@ -192,6 +220,20 @@ dependencies:
|
|
192
220
|
- - ">="
|
193
221
|
- !ruby/object:Gem::Version
|
194
222
|
version: '3.2'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
requirement: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '0.3'
|
229
|
+
name: thread_safe
|
230
|
+
prerelease: false
|
231
|
+
type: :runtime
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0.3'
|
195
237
|
description: Ruby client for using split SDK.
|
196
238
|
email:
|
197
239
|
- pato@split.io
|
@@ -201,6 +243,7 @@ extensions: []
|
|
201
243
|
extra_rdoc_files: []
|
202
244
|
files:
|
203
245
|
- ".gitignore"
|
246
|
+
- ".rubocop.yml"
|
204
247
|
- CHANGES.txt
|
205
248
|
- Detailed-README.md
|
206
249
|
- Gemfile
|
@@ -287,6 +330,7 @@ files:
|
|
287
330
|
- lib/splitclient-rb/split_config.rb
|
288
331
|
- lib/splitclient-rb/split_factory.rb
|
289
332
|
- lib/splitclient-rb/split_factory_builder.rb
|
333
|
+
- lib/splitclient-rb/split_logger.rb
|
290
334
|
- lib/splitclient-rb/utilitites.rb
|
291
335
|
- lib/splitclient-rb/version.rb
|
292
336
|
- splitclient-rb.gemspec
|
@@ -309,9 +353,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
309
353
|
version: '0'
|
310
354
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
311
355
|
requirements:
|
312
|
-
- - "
|
356
|
+
- - ">="
|
313
357
|
- !ruby/object:Gem::Version
|
314
|
-
version:
|
358
|
+
version: '0'
|
315
359
|
requirements: []
|
316
360
|
rubyforge_project:
|
317
361
|
rubygems_version: 2.6.14
|