rollout_ui 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,20 +23,31 @@ describe RolloutUi::Feature do
23
23
  end
24
24
 
25
25
  describe "#groups" do
26
+
27
+ it "returns an empty array when there are no activated groups for the feature" do
28
+ $redis.del('feature:featureA:groups')
29
+ @feature.groups.should == []
30
+ end
31
+
26
32
  it "returns the activated groups for the feature" do
27
33
  $rollout.activate_group(:featureA, :beta_testers)
28
- @feature.groups.should == ["beta_testers"]
34
+ @feature.groups.should == [:beta_testers]
29
35
  end
30
36
  end
31
37
 
32
38
  describe "#groups=" do
33
39
  it "sets the activated groups for the feature" do
34
40
  @feature.groups = ["all", "admins"]
35
- RolloutUi::Feature.new(:featureA).groups.should == ["admins", "all"]
41
+ RolloutUi::Feature.new(:featureA).groups.should =~ [:admins, :all]
36
42
  end
37
43
  end
38
44
 
39
45
  describe "#users" do
46
+ it "returns an empty array when there are no activated users for the feature" do
47
+ $redis.del('=feature:featureA:users')
48
+ @feature.user_ids.should == []
49
+ end
50
+
40
51
  it "returns the activated users for the feature" do
41
52
  $rollout.activate_user(:featureA, mock(:user, :id => 5))
42
53
  @feature.user_ids.should == ["5"]
@@ -47,8 +58,8 @@ describe RolloutUi::Feature do
47
58
  it "sets the activated users for the feature" do
48
59
  @feature.user_ids = [5, "7", ""]
49
60
  RolloutUi::Feature.new(:featureA).user_ids.length.should == 2
50
- RolloutUi::Feature.new(:featureA).user_ids.should include("5")
51
- RolloutUi::Feature.new(:featureA).user_ids.should include("7")
61
+ RolloutUi::Feature.new(:featureA).user_ids.should include("5")
62
+ RolloutUi::Feature.new(:featureA).user_ids.should include("7")
52
63
  end
53
64
  end
54
65
  end
@@ -23,13 +23,13 @@ describe RolloutUi::Wrapper do
23
23
  it "returns all groups defined for the rollout instance" do
24
24
  $rollout.define_group(:beta_testers) { |user| user.beta_tester? }
25
25
 
26
- @rollout_ui.groups.should == ["all", "beta_testers"]
26
+ @rollout_ui.groups.should == [:all, :beta_testers]
27
27
  end
28
28
 
29
29
  it "doesn't return other defined groups" do
30
30
  Rollout.new($redis).define_group(:beta_testers) { |user| user.beta_tester? }
31
31
 
32
- @rollout_ui.groups.should == ["all"]
32
+ @rollout_ui.groups.should == [:all]
33
33
  end
34
34
  end
35
35
 
@@ -51,6 +51,15 @@ describe RolloutUi::Wrapper do
51
51
 
52
52
  @rollout_ui.features.should == ["featureA"]
53
53
  end
54
+
55
+ it "lists features in alphabetical order" do
56
+ $rollout.active?(:zFeature, mock(:user, :id => 1))
57
+ $rollout.active?(:featureA, mock(:user, :id => 5))
58
+ $rollout.active?(:featureB, mock(:user, :id => 6))
59
+ $rollout.active?(:anotherFeature, mock(:user, :id => 8))
60
+
61
+ @rollout_ui.features.should == %w(anotherFeature featureA featureB zFeature)
62
+ end
54
63
  end
55
64
 
56
65
  describe "#add_feature" do
@@ -90,6 +90,20 @@ describe "Engine" do
90
90
  page.should have_css("input.users[value='5']")
91
91
  end
92
92
  end
93
+
94
+ describe "order" do
95
+ before do
96
+ $rollout.active?(:featureB, user)
97
+ $rollout.active?(:anotherFeature, user)
98
+ end
99
+
100
+ it "shows features in alphabetical order" do
101
+ visit "/rollout"
102
+
103
+ elements = %w(anotherFeature featureA featureB)
104
+ page.body.should =~ Regexp.new("#{elements.join('.*')}.*", Regexp::MULTILINE)
105
+ end
106
+ end
93
107
  end
94
108
  end
95
109
 
metadata CHANGED
@@ -1,188 +1,183 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rollout_ui
3
- version: !ruby/object:Gem::Version
4
- hash: 21
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - John Allison
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-03-08 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-09-01 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rollout
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 19
29
- segments:
30
- - 1
31
- - 1
32
- - 0
33
- version: 1.1.0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rake
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
48
38
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rails
52
39
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rails
48
+ requirement: !ruby/object:Gem::Requirement
54
49
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
62
54
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: sinatra
66
55
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
68
57
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: sinatra
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
76
70
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: uglifier
80
71
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
82
73
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: uglifier
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
90
86
  type: :development
91
- version_requirements: *id005
92
- - !ruby/object:Gem::Dependency
93
- name: mysql
94
87
  prerelease: false
95
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
96
89
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
104
- type: :development
105
- version_requirements: *id006
106
- - !ruby/object:Gem::Dependency
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
107
95
  name: rspec-rails
108
- prerelease: false
109
- requirement: &id007 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
110
97
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 3
115
- segments:
116
- - 0
117
- version: "0"
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
118
102
  type: :development
119
- version_requirements: *id007
120
- - !ruby/object:Gem::Dependency
121
- name: capybara
122
103
  prerelease: false
123
- requirement: &id008 !ruby/object:Gem::Requirement
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: capybara
112
+ requirement: !ruby/object:Gem::Requirement
124
113
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
132
118
  type: :development
133
- version_requirements: *id008
134
- - !ruby/object:Gem::Dependency
135
- name: launchy
136
119
  prerelease: false
137
- requirement: &id009 !ruby/object:Gem::Requirement
120
+ version_requirements: !ruby/object:Gem::Requirement
138
121
  none: false
139
- requirements:
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- hash: 3
143
- segments:
144
- - 0
145
- version: "0"
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: launchy
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
146
134
  type: :development
147
- version_requirements: *id009
148
- - !ruby/object:Gem::Dependency
149
- name: rack-test
150
135
  prerelease: false
151
- requirement: &id010 !ruby/object:Gem::Requirement
136
+ version_requirements: !ruby/object:Gem::Requirement
152
137
  none: false
153
- requirements:
154
- - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
158
- - 0
159
- version: "0"
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rack-test
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
160
150
  type: :development
161
- version_requirements: *id010
162
- - !ruby/object:Gem::Dependency
163
- name: redis-namespace
164
151
  prerelease: false
165
- requirement: &id011 !ruby/object:Gem::Requirement
152
+ version_requirements: !ruby/object:Gem::Requirement
166
153
  none: false
167
- requirements:
168
- - - ">="
169
- - !ruby/object:Gem::Version
170
- hash: 3
171
- segments:
172
- - 0
173
- version: "0"
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: redis-namespace
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
174
166
  type: :development
175
- version_requirements: *id011
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
176
174
  description: A UI for James Golick's rollout gem
177
- email:
175
+ email:
178
176
  - jrallison@gmail.com
179
177
  executables: []
180
-
181
178
  extensions: []
182
-
183
179
  extra_rdoc_files: []
184
-
185
- files:
180
+ files:
186
181
  - lib/rollout_ui/engine/app/assets/images/rollout_ui/dark_brick_wall.png
187
182
  - lib/rollout_ui/engine/app/assets/images/rollout_ui/rollout.png
188
183
  - lib/rollout_ui/engine/app/assets/javascripts/rollout_ui/application.js
@@ -227,7 +222,6 @@ files:
227
222
  - spec/dummy/app/views/layouts/application.html.erb
228
223
  - spec/dummy/config/application.rb
229
224
  - spec/dummy/config/boot.rb
230
- - spec/dummy/config/database.yml
231
225
  - spec/dummy/config/environment.rb
232
226
  - spec/dummy/config/environments/development.rb
233
227
  - spec/dummy/config/environments/production.rb
@@ -255,38 +249,29 @@ files:
255
249
  - spec/spec_helper.rb
256
250
  homepage: http://github.com/jrallison/rollout_ui
257
251
  licenses: []
258
-
259
252
  post_install_message:
260
253
  rdoc_options: []
261
-
262
- require_paths:
254
+ require_paths:
263
255
  - lib
264
- required_ruby_version: !ruby/object:Gem::Requirement
256
+ required_ruby_version: !ruby/object:Gem::Requirement
265
257
  none: false
266
- requirements:
267
- - - ">="
268
- - !ruby/object:Gem::Version
269
- hash: 3
270
- segments:
271
- - 0
272
- version: "0"
273
- required_rubygems_version: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ! '>='
260
+ - !ruby/object:Gem::Version
261
+ version: '0'
262
+ required_rubygems_version: !ruby/object:Gem::Requirement
274
263
  none: false
275
- requirements:
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- hash: 3
279
- segments:
280
- - 0
281
- version: "0"
264
+ requirements:
265
+ - - ! '>='
266
+ - !ruby/object:Gem::Version
267
+ version: '0'
282
268
  requirements: []
283
-
284
269
  rubyforge_project:
285
- rubygems_version: 1.8.5
270
+ rubygems_version: 1.8.24
286
271
  signing_key:
287
272
  specification_version: 3
288
273
  summary: A UI for James Golick's rollout gem
289
- test_files:
274
+ test_files:
290
275
  - spec/dummy/app/assets/javascripts/application.js
291
276
  - spec/dummy/app/assets/stylesheets/application.css
292
277
  - spec/dummy/app/controllers/application_controller.rb
@@ -294,7 +279,6 @@ test_files:
294
279
  - spec/dummy/app/views/layouts/application.html.erb
295
280
  - spec/dummy/config/application.rb
296
281
  - spec/dummy/config/boot.rb
297
- - spec/dummy/config/database.yml
298
282
  - spec/dummy/config/environment.rb
299
283
  - spec/dummy/config/environments/development.rb
300
284
  - spec/dummy/config/environments/production.rb
@@ -320,4 +304,3 @@ test_files:
320
304
  - spec/lib/rollout_ui/wrapper_spec.rb
321
305
  - spec/requests/engine/engine_spec.rb
322
306
  - spec/spec_helper.rb
323
- has_rdoc: