rollout 2.4.1 → 2.4.2
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/Gemfile.lock +18 -18
- data/lib/rollout.rb +7 -1
- data/lib/rollout/version.rb +1 -1
- data/spec/rollout_spec.rb +11 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae73aef78e5898a7936f6853788580ace070953f
|
4
|
+
data.tar.gz: 216f839eb30e2dbd26b33c5a5f224c285e73dc66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6da7d61689d2048e82ef624ac93bc38abf9b141fc53e1787bafcd937d84eccf663ad54141040eeabaaeab5580700600fbc5b8b1bc5a319447ce53fbb1c7a12b9
|
7
|
+
data.tar.gz: 8c2d609455ea50da07b7229736db71e83856c4701d1b8c296472f4e6fb3583e748257a04840599a9a833114bcc9e9443f85172a0bbfdb15212beb8079aa8e629
|
data/Gemfile.lock
CHANGED
@@ -1,42 +1,42 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rollout (2.4.
|
4
|
+
rollout (2.4.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
appraisal (2.
|
9
|
+
appraisal (2.2.0)
|
10
10
|
bundler
|
11
11
|
rake
|
12
12
|
thor (>= 0.14.0)
|
13
|
-
codeclimate-test-reporter (1.0.
|
14
|
-
simplecov
|
13
|
+
codeclimate-test-reporter (1.0.8)
|
14
|
+
simplecov (<= 0.13)
|
15
15
|
diff-lcs (1.3)
|
16
16
|
docile (1.1.5)
|
17
17
|
fakeredis (0.6.0)
|
18
18
|
redis (~> 3.2)
|
19
|
-
json (2.0
|
19
|
+
json (2.1.0)
|
20
20
|
rake (12.0.0)
|
21
21
|
redis (3.3.3)
|
22
|
-
rspec (3.
|
23
|
-
rspec-core (~> 3.
|
24
|
-
rspec-expectations (~> 3.
|
25
|
-
rspec-mocks (~> 3.
|
26
|
-
rspec-core (3.
|
27
|
-
rspec-support (~> 3.
|
28
|
-
rspec-expectations (3.
|
22
|
+
rspec (3.6.0)
|
23
|
+
rspec-core (~> 3.6.0)
|
24
|
+
rspec-expectations (~> 3.6.0)
|
25
|
+
rspec-mocks (~> 3.6.0)
|
26
|
+
rspec-core (3.6.0)
|
27
|
+
rspec-support (~> 3.6.0)
|
28
|
+
rspec-expectations (3.6.0)
|
29
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
-
rspec-support (~> 3.
|
31
|
-
rspec-mocks (3.
|
30
|
+
rspec-support (~> 3.6.0)
|
31
|
+
rspec-mocks (3.6.0)
|
32
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
-
rspec-support (~> 3.
|
34
|
-
rspec-support (3.
|
33
|
+
rspec-support (~> 3.6.0)
|
34
|
+
rspec-support (3.6.0)
|
35
35
|
simplecov (0.13.0)
|
36
36
|
docile (~> 1.1.0)
|
37
37
|
json (>= 1.8, < 3)
|
38
38
|
simplecov-html (~> 0.10.0)
|
39
|
-
simplecov-html (0.10.
|
39
|
+
simplecov-html (0.10.1)
|
40
40
|
thor (0.19.4)
|
41
41
|
|
42
42
|
PLATFORMS
|
@@ -53,4 +53,4 @@ DEPENDENCIES
|
|
53
53
|
simplecov
|
54
54
|
|
55
55
|
BUNDLED WITH
|
56
|
-
1.
|
56
|
+
1.15.1
|
data/lib/rollout.rb
CHANGED
@@ -4,6 +4,8 @@ require "set"
|
|
4
4
|
require "json"
|
5
5
|
|
6
6
|
class Rollout
|
7
|
+
RAND_BASE = (2**32 - 1) / 100.0
|
8
|
+
|
7
9
|
class Feature
|
8
10
|
attr_accessor :groups, :users, :percentage, :data
|
9
11
|
attr_reader :name, :options
|
@@ -88,7 +90,7 @@ class Rollout
|
|
88
90
|
end
|
89
91
|
|
90
92
|
def user_in_percentage?(user)
|
91
|
-
Zlib.crc32(user_id_for_percentage(user))
|
93
|
+
Zlib.crc32(user_id_for_percentage(user)) < RAND_BASE * @percentage
|
92
94
|
end
|
93
95
|
|
94
96
|
def user_id_for_percentage(user)
|
@@ -283,6 +285,10 @@ class Rollout
|
|
283
285
|
@storage.del(features_key)
|
284
286
|
end
|
285
287
|
|
288
|
+
def exists?(feature)
|
289
|
+
@storage.exists(key(feature))
|
290
|
+
end
|
291
|
+
|
286
292
|
private
|
287
293
|
|
288
294
|
def key(name)
|
data/lib/rollout/version.rb
CHANGED
data/spec/rollout_spec.rb
CHANGED
@@ -646,6 +646,17 @@ RSpec.describe "Rollout" do
|
|
646
646
|
expect(@rollout.get(:chat).data).to eq({})
|
647
647
|
end
|
648
648
|
end
|
649
|
+
|
650
|
+
describe 'Check if feature exists' do
|
651
|
+
it 'it should return true if the feature is exist' do
|
652
|
+
@rollout.activate_percentage(:chat, 1)
|
653
|
+
expect(@rollout.exists?(:chat)).to be true
|
654
|
+
end
|
655
|
+
|
656
|
+
it 'it should return false if the feature is not exist' do
|
657
|
+
expect(@rollout.exists?(:chat)).to be false
|
658
|
+
end
|
659
|
+
end
|
649
660
|
end
|
650
661
|
|
651
662
|
describe "Rollout::Feature" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Golick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
152
|
version: '0'
|
153
153
|
requirements: []
|
154
154
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.6.
|
155
|
+
rubygems_version: 2.6.12
|
156
156
|
signing_key:
|
157
157
|
specification_version: 4
|
158
158
|
summary: Feature flippers with redis.
|