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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 531e50e9914dd1ea745969469ae49b805fe583b7
4
- data.tar.gz: 2c25094aa9935d7ce97263f0829072bcb728dffc
3
+ metadata.gz: be3151ff1e21e7693a5b5be187e4db45cf4eb5d3
4
+ data.tar.gz: 4bf397113ea44c2a522b4929c2030ca1aa756fab
5
5
  SHA512:
6
- metadata.gz: 87983bb4671e964ea46e5e7c85f98b4a9e9254707c2a4775c7a24998a2480dc0faa07a67acb0f90c2cdab8a84530ffd41417fca763cfd9c4308060179f8ece78
7
- data.tar.gz: fa7c1d4f2c9fc0202d0272f0750cf0ea9087a6bb375e692631bc9c4b2ea3c6e52e649a601a0c2bcef4549e38d7fcd5d683fd08711805a77db757b86d6531bab3
6
+ metadata.gz: 579ebe41258df73bf78477cba47da1529302c560e246f03a1bf4c652e93518a1de7e7053ec9665f3eefc94f04e21015b48a568dbdd1951d44ce23775aa967673
7
+ data.tar.gz: 34fee387845b0cd8df9f1f593d900b8bb22de23acc2aee4777e99672a5caac1c78122ca020f032453e786d607bb7d905e65dbf807cbb8b796beafabba98fa6c2
data/.gitignore CHANGED
@@ -18,5 +18,6 @@ coverage
18
18
  rdoc
19
19
  pkg
20
20
  *.gem
21
+ gemfiles/*.lock
21
22
 
22
23
  ## PROJECT::SPECIFIC
@@ -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
@@ -0,0 +1,7 @@
1
+ appraise "redis-3" do
2
+ gem "redis", "~> 3.3.2"
3
+ end
4
+
5
+ appraise "redis-4" do
6
+ gem "redis", "4.0.0.rc1"
7
+ end
@@ -1,48 +1,56 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rollout (2.3.0)
4
+ rollout (2.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- codeclimate-test-reporter (0.4.8)
10
- simplecov (>= 0.7.1, < 1.0.0)
11
- diff-lcs (1.2.5)
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.5.0)
14
- redis (~> 3.0)
15
- json (1.8.3)
16
- redis (3.2.2)
17
- rspec (3.4.0)
18
- rspec-core (~> 3.4.0)
19
- rspec-expectations (~> 3.4.0)
20
- rspec-mocks (~> 3.4.0)
21
- rspec-core (3.4.2)
22
- rspec-support (~> 3.4.0)
23
- rspec-expectations (3.4.0)
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.4.0)
26
- rspec-mocks (3.4.1)
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.4.0)
29
- rspec-support (3.4.1)
30
- simplecov (0.11.1)
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 (~> 1.8)
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
- Feature flippers.
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
- @rollout.set_feature_data(:chat, description: 'foo', release_date: 'bar', whatever: 'baz')
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
@@ -0,0 +1,9 @@
1
+ begin
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
7
+ rescue LoadError
8
+ # no rspec available
9
+ end
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ if RUBY_VERSION >= '2.0'
6
+ gem "json"
7
+ else
8
+ gem "json", "~> 1.8.3"
9
+ end
10
+
11
+ gem "redis", "~> 3.3.2"
12
+
13
+ gemspec :path => "../"
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ if RUBY_VERSION >= '2.0'
6
+ gem "json"
7
+ else
8
+ gem "json", "~> 1.8.3"
9
+ end
10
+
11
+ gem "redis", "4.0.0.rc1"
12
+
13
+ gemspec :path => "../"
@@ -76,7 +76,7 @@ class Rollout
76
76
 
77
77
  private
78
78
  def user_id(user)
79
- if user.is_a?(Fixnum) || user.is_a?(String)
79
+ if user.is_a?(Integer) || user.is_a?(String)
80
80
  user.to_s
81
81
  else
82
82
  user.send(id_user_by).to_s
@@ -1,3 +1,3 @@
1
1
  class Rollout
2
- VERSION = "2.4.0"
2
+ VERSION = "2.4.1"
3
3
  end
@@ -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 = "rollout"
7
- s.version = Rollout::VERSION
8
- s.authors = ["James Golick"]
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 = "Feature flippers with redis."
12
- s.homepage = "https://github.com/FetLife/rollout"
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
@@ -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 "codeclimate-test-reporter"
4
+ require "simplecov"
5
5
  require "rspec"
6
6
  require ENV["USE_REAL_REDIS"] == "true" ? "redis" : "fakeredis"
7
7
 
8
- if ENV["CODECLIMATE_REPO_TOKEN"]
9
- CodeClimate::TestReporter.start
10
- else
11
- SimpleCov.start do
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.0
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: 2016-10-28 00:00:00.000000000 Z
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.4.5.1
155
+ rubygems_version: 2.6.10
123
156
  signing_key:
124
157
  specification_version: 4
125
158
  summary: Feature flippers with redis.