rollout 2.4.0 → 2.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.org/fetlife/rollout.svg?branch=master)](https://travis-ci.org/fetlife/rollout)
|
6
6
|
[![Code Climate](https://codeclimate.com/github/FetLife/rollout/badges/gpa.svg)](https://codeclimate.com/github/fetlife/rollout)
|
7
7
|
[![Test Coverage](https://codeclimate.com/github/FetLife/rollout/badges/coverage.svg)](https://codeclimate.com/github/fetlife/rollout/coverage)
|
8
8
|
[![Dependency Status](https://gemnasium.com/FetLife/rollout.svg)](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.
|