rollout 2.0.0a → 2.0.0b

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.
data/.gitignore CHANGED
@@ -17,5 +17,6 @@ tmtags
17
17
  coverage
18
18
  rdoc
19
19
  pkg
20
+ *.gem
20
21
 
21
22
  ## PROJECT::SPECIFIC
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rollout (1.2.0)
4
+ rollout (2.0.0a)
5
5
  redis
6
6
 
7
7
  GEM
@@ -18,7 +18,7 @@ GEM
18
18
  mocha (0.9.8)
19
19
  rake
20
20
  rake (0.9.2.2)
21
- redis (2.2.2)
21
+ redis (3.0.2)
22
22
  rspec (2.10.0)
23
23
  rspec-core (~> 2.10.0)
24
24
  rspec-expectations (~> 2.10.0)
data/README.rdoc CHANGED
@@ -4,15 +4,15 @@ Feature flippers.
4
4
 
5
5
  == MAKE SURE TO READ THIS: 2.0 Changes and Migration Path
6
6
 
7
- As of rollout-2.x, only one key is used per feature for performance reasons. The data format is `percentage|user_id,user_id,...|group,_group...`. This has the effect of making concurrent feature modifications unsafe, but in practice, I doubt this will actually be a problem.
7
+ As of rollout-2.x, only one key is used per feature for performance reasons. The data format is <tt>percentage|user_id,user_id,...|group,_group...</tt>. This has the effect of making concurrent feature modifications unsafe, but in practice, I doubt this will actually be a problem.
8
8
 
9
- This also has the effect of rollout no longer being dependent on redis. Just give it something that responds to `set(key,value)` and `get(key)`
9
+ This also has the effect of rollout no longer being dependent on redis. Just give it something that responds to <tt>set(key,value)</tt> and <tt>get(key)</tt>.
10
10
 
11
- If you have been using the 1.x format, you can initialize Rollout with `:migrate => true` and it'll do its best to automatically migrate your old features to the new format. There will be some performance impact, but it should be limited and short-lived since each feature only needs to get migrated once.
11
+ If you have been using the 1.x format, you can initialize Rollout with <tt>:migrate => true</tt> and it'll do its best to automatically migrate your old features to the new format. There will be some performance impact, but it should be limited and short-lived since each feature only needs to get migrated once.
12
12
 
13
13
  == Rollout::Legacy
14
14
 
15
- If you'd prefer to continue to use the old layout in redis, `Rollout::Legacy` is a copy and paste of the old code :-).
15
+ If you'd prefer to continue to use the old layout in redis, <tt>Rollout::Legacy</tt> is a copy and paste of the old code :-).
16
16
 
17
17
  == Install it
18
18
 
data/lib/rollout.rb CHANGED
@@ -26,7 +26,7 @@ class Rollout
26
26
  end
27
27
 
28
28
  def remove_user(user)
29
- @users.delete(user.id)
29
+ @users.delete(user.id.to_i)
30
30
  end
31
31
 
32
32
  def add_group(group)
@@ -34,7 +34,7 @@ class Rollout
34
34
  end
35
35
 
36
36
  def remove_group(group)
37
- @groups.delete(group)
37
+ @groups.delete(group.to_sym)
38
38
  end
39
39
 
40
40
  def clear
@@ -1,3 +1,3 @@
1
1
  class Rollout
2
- VERSION = "2.0.0a"
2
+ VERSION = "2.0.0b"
3
3
  end
data/spec/rollout_spec.rb CHANGED
@@ -40,8 +40,10 @@ describe "Rollout" do
40
40
  before do
41
41
  @rollout.define_group(:fivesonly) { |user| user.id == 5 }
42
42
  @rollout.activate_group(:chat, :all)
43
+ @rollout.activate_group(:chat, :some)
43
44
  @rollout.activate_group(:chat, :fivesonly)
44
45
  @rollout.deactivate_group(:chat, :all)
46
+ @rollout.deactivate_group(:chat, "some")
45
47
  end
46
48
 
47
49
  it "deactivates the rules for that group" do
@@ -49,7 +51,7 @@ describe "Rollout" do
49
51
  end
50
52
 
51
53
  it "leaves the other groups active" do
52
- @rollout.should be_active(:chat, stub(:id => 5))
54
+ @rollout.get(:chat).groups.should == [:fivesonly]
53
55
  end
54
56
  end
55
57
 
@@ -98,8 +100,10 @@ describe "Rollout" do
98
100
  describe "deactivating a specific user" do
99
101
  before do
100
102
  @rollout.activate_user(:chat, stub(:id => 42))
103
+ @rollout.activate_user(:chat, stub(:id => 4242))
101
104
  @rollout.activate_user(:chat, stub(:id => 24))
102
105
  @rollout.deactivate_user(:chat, stub(:id => 42))
106
+ @rollout.deactivate_user(:chat, stub(:id => "4242"))
103
107
  end
104
108
 
105
109
  it "that user should no longer be active" do
@@ -107,7 +111,7 @@ describe "Rollout" do
107
111
  end
108
112
 
109
113
  it "remains active for other active users" do
110
- @rollout.should be_active(:chat, stub(:id => 24))
114
+ @rollout.get(:chat).users.should == [24]
111
115
  end
112
116
  end
113
117
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rollout
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0a
4
+ version: 2.0.0b
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70240073640980 !ruby/object:Gem::Requirement
16
+ requirement: &70157179413940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.10.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70240073640980
24
+ version_requirements: *70157179413940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70240073640480 !ruby/object:Gem::Requirement
27
+ requirement: &70157179413360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70240073640480
35
+ version_requirements: *70157179413360
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70240073640020 !ruby/object:Gem::Requirement
38
+ requirement: &70157179412840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70240073640020
46
+ version_requirements: *70157179412840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bourne
49
- requirement: &70240073639560 !ruby/object:Gem::Requirement
49
+ requirement: &70157179412320 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - =
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '1.0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70240073639560
57
+ version_requirements: *70157179412320
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mocha
60
- requirement: &70240073639100 !ruby/object:Gem::Requirement
60
+ requirement: &70157179411820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - =
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.9.8
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70240073639100
68
+ version_requirements: *70157179411820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: redis
71
- requirement: &70240073638720 !ruby/object:Gem::Requirement
71
+ requirement: &70157179411400 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70240073638720
79
+ version_requirements: *70157179411400
80
80
  description: Feature flippers with redis.
81
81
  email:
82
82
  - jamesgolick@gmail.com