rollout 2.4.0 → 2.4.1
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/.gitignore +1 -0
- data/.travis.yml +4 -0
- data/Appraisals +7 -0
- data/Gemfile.lock +29 -21
- data/README.md +6 -13
- data/Rakefile +9 -0
- data/gemfiles/redis_3.gemfile +13 -0
- data/gemfiles/redis_4.gemfile +13 -0
- data/lib/rollout.rb +1 -1
- data/lib/rollout/version.rb +1 -1
- data/rollout.gemspec +8 -5
- data/spec/spec_helper.rb +5 -11
- metadata +37 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be3151ff1e21e7693a5b5be187e4db45cf4eb5d3
|
4
|
+
data.tar.gz: 4bf397113ea44c2a522b4929c2030ca1aa756fab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 579ebe41258df73bf78477cba47da1529302c560e246f03a1bf4c652e93518a1de7e7053ec9665f3eefc94f04e21015b48a568dbdd1951d44ce23775aa967673
|
7
|
+
data.tar.gz: 34fee387845b0cd8df9f1f593d900b8bb22de23acc2aee4777e99672a5caac1c78122ca020f032453e786d607bb7d905e65dbf807cbb8b796beafabba98fa6c2
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -4,6 +4,7 @@ sudo: false
|
|
4
4
|
services:
|
5
5
|
- redis-server
|
6
6
|
rvm:
|
7
|
+
- 2.4.1
|
7
8
|
- 2.3.1
|
8
9
|
- 2.2
|
9
10
|
- 2.1
|
@@ -12,5 +13,8 @@ rvm:
|
|
12
13
|
- jruby-19mode
|
13
14
|
env:
|
14
15
|
- USE_REAL_REDIS=true
|
16
|
+
gemfile:
|
17
|
+
- gemfiles/redis_3.gemfile
|
18
|
+
- gemfiles/redis_4.gemfile
|
15
19
|
script:
|
16
20
|
- bundle exec rspec
|
data/Appraisals
ADDED
data/Gemfile.lock
CHANGED
@@ -1,48 +1,56 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rollout (2.
|
4
|
+
rollout (2.4.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
appraisal (2.1.0)
|
10
|
+
bundler
|
11
|
+
rake
|
12
|
+
thor (>= 0.14.0)
|
13
|
+
codeclimate-test-reporter (1.0.5)
|
14
|
+
simplecov
|
15
|
+
diff-lcs (1.3)
|
12
16
|
docile (1.1.5)
|
13
|
-
fakeredis (0.
|
14
|
-
redis (~> 3.
|
15
|
-
json (
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
rspec-
|
20
|
-
rspec-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
fakeredis (0.6.0)
|
18
|
+
redis (~> 3.2)
|
19
|
+
json (2.0.3)
|
20
|
+
rake (12.0.0)
|
21
|
+
redis (3.3.3)
|
22
|
+
rspec (3.5.0)
|
23
|
+
rspec-core (~> 3.5.0)
|
24
|
+
rspec-expectations (~> 3.5.0)
|
25
|
+
rspec-mocks (~> 3.5.0)
|
26
|
+
rspec-core (3.5.4)
|
27
|
+
rspec-support (~> 3.5.0)
|
28
|
+
rspec-expectations (3.5.0)
|
24
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
25
|
-
rspec-support (~> 3.
|
26
|
-
rspec-mocks (3.
|
30
|
+
rspec-support (~> 3.5.0)
|
31
|
+
rspec-mocks (3.5.0)
|
27
32
|
diff-lcs (>= 1.2.0, < 2.0)
|
28
|
-
rspec-support (~> 3.
|
29
|
-
rspec-support (3.
|
30
|
-
simplecov (0.
|
33
|
+
rspec-support (~> 3.5.0)
|
34
|
+
rspec-support (3.5.0)
|
35
|
+
simplecov (0.13.0)
|
31
36
|
docile (~> 1.1.0)
|
32
|
-
json (
|
37
|
+
json (>= 1.8, < 3)
|
33
38
|
simplecov-html (~> 0.10.0)
|
34
39
|
simplecov-html (0.10.0)
|
40
|
+
thor (0.19.4)
|
35
41
|
|
36
42
|
PLATFORMS
|
37
43
|
ruby
|
38
44
|
|
39
45
|
DEPENDENCIES
|
46
|
+
appraisal
|
40
47
|
bundler (>= 1.0.0)
|
41
48
|
codeclimate-test-reporter
|
42
49
|
fakeredis
|
43
50
|
redis
|
44
51
|
rollout!
|
45
52
|
rspec
|
53
|
+
simplecov
|
46
54
|
|
47
55
|
BUNDLED WITH
|
48
56
|
1.12.5
|
data/README.md
CHANGED
@@ -1,23 +1,12 @@
|
|
1
1
|
# rollout
|
2
2
|
|
3
|
-
|
3
|
+
Fast feature flags based on Redis.
|
4
4
|
|
5
5
|
[](https://travis-ci.org/fetlife/rollout)
|
6
6
|
[](https://codeclimate.com/github/fetlife/rollout)
|
7
7
|
[](https://codeclimate.com/github/fetlife/rollout/coverage)
|
8
8
|
[](https://gemnasium.com/fetlife/rollout)
|
9
9
|
|
10
|
-
## MAKE SURE TO READ THIS: 2.X Changes and Migration Path
|
11
|
-
|
12
|
-
As of rollout-2.x, only one key is used per feature for performance reasons.
|
13
|
-
The serialized format is `percentage|user_id,user_id,...|group,_group...|data_json`. This has
|
14
|
-
the effect of making concurrent feature modifications unsafe, but in practice,
|
15
|
-
I doubt this will actually be a problem.
|
16
|
-
|
17
|
-
This also has the effect of rollout no longer being dependent on redis. Just
|
18
|
-
give it something that responds to `set(key,value)`, `get(key)` and
|
19
|
-
`del(key)`.
|
20
|
-
|
21
10
|
## Install it
|
22
11
|
|
23
12
|
```bash
|
@@ -38,7 +27,7 @@ $rollout = Rollout.new($redis)
|
|
38
27
|
Update data specific to a feature:
|
39
28
|
|
40
29
|
```ruby
|
41
|
-
|
30
|
+
$rollout.set_feature_data(:chat, description: 'foo', release_date: 'bar', whatever: 'baz')
|
42
31
|
```
|
43
32
|
|
44
33
|
Check whether a feature is active for a particular user:
|
@@ -178,6 +167,10 @@ $rollout.activate_group(:chat, :all)
|
|
178
167
|
|
179
168
|
This example would use the "development:feature:chat:groups" key.
|
180
169
|
|
170
|
+
## Frontend / UI
|
171
|
+
|
172
|
+
* [Rollout-Dashboard](https://github.com/fiverr/rollout_dashboard/)
|
173
|
+
|
181
174
|
## Implementations in other languages
|
182
175
|
|
183
176
|
* Python: https://github.com/asenchi/proclaim
|
data/Rakefile
ADDED
data/lib/rollout.rb
CHANGED
data/lib/rollout/version.rb
CHANGED
data/rollout.gemspec
CHANGED
@@ -3,13 +3,14 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
require "rollout/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
|
-
s.name
|
7
|
-
s.version
|
8
|
-
s.authors
|
6
|
+
s.name = "rollout"
|
7
|
+
s.version = Rollout::VERSION
|
8
|
+
s.authors = ["James Golick"]
|
9
9
|
s.email = ["jamesgolick@gmail.com"]
|
10
10
|
s.description = "Feature flippers with redis."
|
11
|
-
s.summary
|
12
|
-
s.homepage
|
11
|
+
s.summary = "Feature flippers with redis."
|
12
|
+
s.homepage = "https://github.com/FetLife/rollout"
|
13
|
+
s.license = "MIT"
|
13
14
|
|
14
15
|
s.files = `git ls-files`.split("\n")
|
15
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -17,8 +18,10 @@ Gem::Specification.new do |s|
|
|
17
18
|
s.require_paths = ["lib"]
|
18
19
|
|
19
20
|
s.add_development_dependency "rspec"
|
21
|
+
s.add_development_dependency "appraisal"
|
20
22
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
21
23
|
s.add_development_dependency "redis"
|
22
24
|
s.add_development_dependency "fakeredis"
|
25
|
+
s.add_development_dependency "simplecov"
|
23
26
|
s.add_development_dependency "codeclimate-test-reporter"
|
24
27
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,22 +1,16 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
3
|
|
4
|
-
require "
|
4
|
+
require "simplecov"
|
5
5
|
require "rspec"
|
6
6
|
require ENV["USE_REAL_REDIS"] == "true" ? "redis" : "fakeredis"
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
formatter SimpleCov::Formatter::MultiFormatter.new([
|
13
|
-
SimpleCov::Formatter::HTMLFormatter,
|
14
|
-
CodeClimate::TestReporter::Formatter,
|
15
|
-
])
|
16
|
-
end
|
8
|
+
SimpleCov.start do
|
9
|
+
formatter SimpleCov::Formatter::MultiFormatter.new([
|
10
|
+
SimpleCov::Formatter::HTMLFormatter,
|
11
|
+
])
|
17
12
|
end
|
18
13
|
|
19
|
-
|
20
14
|
require "rollout"
|
21
15
|
|
22
16
|
RSpec.configure do |config|
|
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.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Golick
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: appraisal
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: codeclimate-test-reporter
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,17 +119,22 @@ files:
|
|
91
119
|
- ".gitignore"
|
92
120
|
- ".rspec"
|
93
121
|
- ".travis.yml"
|
122
|
+
- Appraisals
|
94
123
|
- Gemfile
|
95
124
|
- Gemfile.lock
|
96
125
|
- LICENSE
|
97
126
|
- README.md
|
127
|
+
- Rakefile
|
128
|
+
- gemfiles/redis_3.gemfile
|
129
|
+
- gemfiles/redis_4.gemfile
|
98
130
|
- lib/rollout.rb
|
99
131
|
- lib/rollout/version.rb
|
100
132
|
- rollout.gemspec
|
101
133
|
- spec/rollout_spec.rb
|
102
134
|
- spec/spec_helper.rb
|
103
135
|
homepage: https://github.com/FetLife/rollout
|
104
|
-
licenses:
|
136
|
+
licenses:
|
137
|
+
- MIT
|
105
138
|
metadata: {}
|
106
139
|
post_install_message:
|
107
140
|
rdoc_options: []
|
@@ -119,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
152
|
version: '0'
|
120
153
|
requirements: []
|
121
154
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
155
|
+
rubygems_version: 2.6.10
|
123
156
|
signing_key:
|
124
157
|
specification_version: 4
|
125
158
|
summary: Feature flippers with redis.
|