roles_generic 0.2.7 → 0.3.3

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.
Files changed (52) hide show
  1. data/README.markdown +25 -13
  2. data/Rakefile +7 -5
  3. data/VERSION +1 -1
  4. data/lib/generators/{roles_model → roles_generic}/roles/roles_generator.rb +8 -15
  5. data/lib/roles_generic/base.rb +40 -2
  6. data/lib/roles_generic/generic/role.rb +2 -16
  7. data/lib/roles_generic/generic/role_util.rb +30 -0
  8. data/lib/roles_generic/generic/user/implementation.rb +108 -6
  9. data/lib/roles_generic/generic/user/multi_impl.rb +27 -0
  10. data/lib/roles_generic/generic/user/single_impl.rb +24 -0
  11. data/lib/roles_generic/generic.rb +1 -1
  12. data/lib/roles_generic/role.rb +1 -0
  13. data/lib/roles_generic/rspec/api/completeness.rb +22 -0
  14. data/lib/roles_generic/rspec/api/full.rb +5 -0
  15. data/lib/roles_generic/rspec/api/read_api.rb +119 -0
  16. data/lib/roles_generic/rspec/api/simple_check.rb +11 -0
  17. data/lib/roles_generic/rspec/api/user_class_api.rb +31 -0
  18. data/lib/roles_generic/rspec/api/write_api.rb +50 -0
  19. data/lib/roles_generic/rspec/test_it.rb +2 -0
  20. data/lib/roles_generic/rspec/user_setup.rb +6 -0
  21. data/lib/roles_generic/strategy/multi/many_roles.rb +12 -19
  22. data/lib/roles_generic/strategy/multi/role_strings.rb +15 -12
  23. data/lib/roles_generic/strategy/multi/roles_mask.rb +20 -16
  24. data/lib/roles_generic/strategy/multi/roles_string.rb +14 -11
  25. data/lib/roles_generic/strategy/single/admin_flag.rb +24 -13
  26. data/lib/roles_generic/strategy/single/one_role.rb +19 -18
  27. data/lib/roles_generic/strategy/single/role_string.rb +16 -11
  28. data/lib/roles_generic.rb +1 -0
  29. data/roles_generic.gemspec +60 -46
  30. data/spec/generator_spec_helper.rb +1 -1
  31. data/spec/{generators → roles_generic/generators}/admin_flag_generator_spec.rb +2 -3
  32. data/spec/{generators → roles_generic/generators}/many_roles_generator_spec.rb +3 -2
  33. data/spec/{generators → roles_generic/generators}/one_role_generator_spec.rb +3 -2
  34. data/spec/{generators → roles_generic/generators}/role_string_generator_spec.rb +2 -2
  35. data/spec/{generators → roles_generic/generators}/role_strings_generator_spec.rb +2 -2
  36. data/spec/{generators → roles_generic/generators}/roles_mask_generator_spec.rb +2 -2
  37. data/spec/{generators → roles_generic/generators}/roles_string_generator_spec.rb +2 -2
  38. data/spec/roles_generic/strategy/multi/many_roles_spec.rb +26 -0
  39. data/spec/roles_generic/strategy/multi/role_strings_spec.rb +21 -0
  40. data/spec/roles_generic/strategy/multi/roles_mask_spec.rb +20 -0
  41. data/spec/roles_generic/strategy/multi/roles_string_spec.rb +21 -0
  42. data/spec/roles_generic/strategy/single/admin_flag_spec.rb +20 -0
  43. data/spec/roles_generic/strategy/single/one_role_spec.rb +27 -0
  44. data/spec/roles_generic/strategy/single/role_string_spec.rb +21 -0
  45. metadata +72 -50
  46. data/spec/roles_generic/admin_flag_spec.rb +0 -66
  47. data/spec/roles_generic/many_roles_spec.rb +0 -64
  48. data/spec/roles_generic/one_role_spec.rb +0 -71
  49. data/spec/roles_generic/role_string_spec.rb +0 -65
  50. data/spec/roles_generic/role_strings_spec.rb +0 -58
  51. data/spec/roles_generic/roles_mask_spec.rb +0 -57
  52. data/spec/roles_generic/roles_string_spec.rb +0 -58
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :many_roles
3
+
4
+ class User
5
+ include Roles::Generic
6
+ strategy :many_roles, :default
7
+
8
+ role_class :role
9
+ attr_accessor :name
10
+
11
+ valid_roles_are :admin, :user, :guest
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+ describe "Roles Generic: :many_roles strategy" do
20
+ require "roles_generic/rspec/test_it"
21
+
22
+ it "should return all registered roles" do
23
+ Role.all.should include(Role.roles.to_a[0])
24
+ Role.names.should include( :admin, :user )
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :role_strings
3
+
4
+ class User
5
+ include Roles::Generic
6
+
7
+ attr_accessor :name
8
+
9
+ strategy :role_strings, :default
10
+ valid_roles_are :admin, :user, :guest
11
+
12
+ def initialize name, *new_roles
13
+ self.name = name
14
+ self.roles = new_roles
15
+ end
16
+ end
17
+
18
+
19
+ describe "Roles Generic: :role_strings strategy" do
20
+ require "roles_generic/rspec/test_it"
21
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :roles_mask
3
+
4
+ class User
5
+ include Roles::Generic
6
+
7
+ attr_accessor :name
8
+
9
+ strategy :roles_mask, :default
10
+ valid_roles_are :admin, :user, :guest
11
+
12
+ def initialize name, *new_roles
13
+ self.name = name
14
+ self.roles = new_roles
15
+ end
16
+ end
17
+
18
+ describe "Roles Generic: :roles_mask strategy" do
19
+ require "roles_generic/rspec/test_it"
20
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :roles_string
3
+
4
+ class User
5
+ include Roles::Generic
6
+
7
+ attr_accessor :name
8
+
9
+ strategy :roles_string, :default
10
+ valid_roles_are :admin, :user, :guest
11
+
12
+ def initialize name, *new_roles
13
+ self.name = name
14
+ self.roles = new_roles
15
+ end
16
+ end
17
+
18
+
19
+ describe "Roles Generic: :roles_string strategy" do
20
+ require "roles_generic/rspec/test_it"
21
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :admin_flag
3
+
4
+ class User
5
+ include Roles::Generic
6
+
7
+ attr_accessor :name
8
+
9
+ strategy :admin_flag, :default
10
+ valid_roles_are :admin, :user, :guest
11
+
12
+ def initialize name, *new_roles
13
+ self.name = name
14
+ self.roles = new_roles
15
+ end
16
+ end
17
+
18
+ describe "Roles Generic: :admin_flag strategy" do
19
+ require "roles_generic/rspec/test_it"
20
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :one_role
3
+
4
+ class User
5
+ include Roles::Generic
6
+ strategy :one_role, :default
7
+
8
+ role_class :role
9
+ attr_accessor :name
10
+
11
+ valid_roles_are :admin, :user, :guest
12
+
13
+ def initialize name, *new_roles
14
+ self.name = name
15
+ self.roles = new_roles
16
+ end
17
+ end
18
+
19
+
20
+ describe "Roles Generic: :one_role strategy" do
21
+ require "roles_generic/rspec/test_it"
22
+
23
+ it "should return all registered roles" do
24
+ Role.all.should include(Role.roles.to_a[0])
25
+ Role.names.should include( :admin, :user )
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :role_string
3
+
4
+ class User
5
+ include Roles::Generic
6
+
7
+ attr_accessor :name
8
+
9
+ strategy :role_string, :default
10
+ valid_roles_are :admin, :user, :guest
11
+
12
+ def initialize name, *new_roles
13
+ self.name = name
14
+ self.roles = new_roles
15
+ end
16
+ end
17
+
18
+
19
+ describe "Roles Generic: :role_string strategy" do
20
+ require "roles_generic/rspec/test_it"
21
+ end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
8
- - 7
9
- version: 0.2.7
7
+ - 3
8
+ - 3
9
+ version: 0.3.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-23 00:00:00 +02:00
17
+ date: 2010-11-20 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -23,15 +23,13 @@ dependencies:
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
- - - ~>
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  segments:
29
29
  - 2
30
30
  - 0
31
31
  - 0
32
- - beta
33
- - 22
34
- version: 2.0.0.beta.22
32
+ version: 2.0.0
35
33
  type: :development
36
34
  version_requirements: *id001
37
35
  - !ruby/object:Gem::Dependency
@@ -40,13 +38,12 @@ dependencies:
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
43
- - - ~>
41
+ - - ">="
44
42
  - !ruby/object:Gem::Version
45
43
  segments:
46
44
  - 0
47
- - 6
48
- - 5
49
- version: 0.6.5
45
+ - 7
46
+ version: "0.7"
50
47
  type: :development
51
48
  version_requirements: *id002
52
49
  - !ruby/object:Gem::Dependency
@@ -70,13 +67,12 @@ dependencies:
70
67
  requirement: &id004 !ruby/object:Gem::Requirement
71
68
  none: false
72
69
  requirements:
73
- - - ~>
70
+ - - ">="
74
71
  - !ruby/object:Gem::Version
75
72
  segments:
76
73
  - 3
77
74
  - 0
78
- - 0
79
- version: 3.0.0
75
+ version: "3.0"
80
76
  type: :runtime
81
77
  version_requirements: *id004
82
78
  - !ruby/object:Gem::Dependency
@@ -89,9 +85,9 @@ dependencies:
89
85
  - !ruby/object:Gem::Version
90
86
  segments:
91
87
  - 0
92
- - 2
93
- - 10
94
- version: 0.2.10
88
+ - 3
89
+ - 0
90
+ version: 0.3.0
95
91
  type: :runtime
96
92
  version_requirements: *id005
97
93
  - !ruby/object:Gem::Dependency
@@ -104,11 +100,26 @@ dependencies:
104
100
  - !ruby/object:Gem::Version
105
101
  segments:
106
102
  - 0
107
- - 2
108
- - 5
109
- version: 0.2.5
103
+ - 3
104
+ - 1
105
+ version: 0.3.1
110
106
  type: :runtime
111
107
  version_requirements: *id006
108
+ - !ruby/object:Gem::Dependency
109
+ name: logging_assist
110
+ prerelease: false
111
+ requirement: &id007 !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ segments:
117
+ - 0
118
+ - 1
119
+ - 6
120
+ version: 0.1.6
121
+ type: :runtime
122
+ version_requirements: *id007
112
123
  description: Generic role strategies sharing the same API. Easy to insert in any model
113
124
  email: kmandrup@gmail.com
114
125
  executables: []
@@ -126,18 +137,29 @@ files:
126
137
  - README.markdown
127
138
  - Rakefile
128
139
  - VERSION
129
- - lib/generators/roles_model/roles/roles_generator.rb
140
+ - lib/generators/roles_generic/roles/roles_generator.rb
130
141
  - lib/roles_generic.rb
131
142
  - lib/roles_generic/admin.rb
132
143
  - lib/roles_generic/base.rb
133
144
  - lib/roles_generic/generic.rb
134
145
  - lib/roles_generic/generic/role.rb
146
+ - lib/roles_generic/generic/role_util.rb
135
147
  - lib/roles_generic/generic/user.rb
136
148
  - lib/roles_generic/generic/user/class_methods.rb
137
149
  - lib/roles_generic/generic/user/configuration.rb
138
150
  - lib/roles_generic/generic/user/implementation.rb
151
+ - lib/roles_generic/generic/user/multi_impl.rb
152
+ - lib/roles_generic/generic/user/single_impl.rb
139
153
  - lib/roles_generic/namespaces.rb
140
154
  - lib/roles_generic/role.rb
155
+ - lib/roles_generic/rspec/api/completeness.rb
156
+ - lib/roles_generic/rspec/api/full.rb
157
+ - lib/roles_generic/rspec/api/read_api.rb
158
+ - lib/roles_generic/rspec/api/simple_check.rb
159
+ - lib/roles_generic/rspec/api/user_class_api.rb
160
+ - lib/roles_generic/rspec/api/write_api.rb
161
+ - lib/roles_generic/rspec/test_it.rb
162
+ - lib/roles_generic/rspec/user_setup.rb
141
163
  - lib/roles_generic/strategy.rb
142
164
  - lib/roles_generic/strategy/multi/many_roles.rb
143
165
  - lib/roles_generic/strategy/multi/role_strings.rb
@@ -148,20 +170,20 @@ files:
148
170
  - lib/roles_generic/strategy/single/role_string.rb
149
171
  - roles_generic.gemspec
150
172
  - spec/generator_spec_helper.rb
151
- - spec/generators/admin_flag_generator_spec.rb
152
- - spec/generators/many_roles_generator_spec.rb
153
- - spec/generators/one_role_generator_spec.rb
154
- - spec/generators/role_string_generator_spec.rb
155
- - spec/generators/role_strings_generator_spec.rb
156
- - spec/generators/roles_mask_generator_spec.rb
157
- - spec/generators/roles_string_generator_spec.rb
158
- - spec/roles_generic/admin_flag_spec.rb
159
- - spec/roles_generic/many_roles_spec.rb
160
- - spec/roles_generic/one_role_spec.rb
161
- - spec/roles_generic/role_string_spec.rb
162
- - spec/roles_generic/role_strings_spec.rb
163
- - spec/roles_generic/roles_mask_spec.rb
164
- - spec/roles_generic/roles_string_spec.rb
173
+ - spec/roles_generic/generators/admin_flag_generator_spec.rb
174
+ - spec/roles_generic/generators/many_roles_generator_spec.rb
175
+ - spec/roles_generic/generators/one_role_generator_spec.rb
176
+ - spec/roles_generic/generators/role_string_generator_spec.rb
177
+ - spec/roles_generic/generators/role_strings_generator_spec.rb
178
+ - spec/roles_generic/generators/roles_mask_generator_spec.rb
179
+ - spec/roles_generic/generators/roles_string_generator_spec.rb
180
+ - spec/roles_generic/strategy/multi/many_roles_spec.rb
181
+ - spec/roles_generic/strategy/multi/role_strings_spec.rb
182
+ - spec/roles_generic/strategy/multi/roles_mask_spec.rb
183
+ - spec/roles_generic/strategy/multi/roles_string_spec.rb
184
+ - spec/roles_generic/strategy/single/admin_flag_spec.rb
185
+ - spec/roles_generic/strategy/single/one_role_spec.rb
186
+ - spec/roles_generic/strategy/single/role_string_spec.rb
165
187
  - spec/spec_helper.rb
166
188
  - wiki/strategies/admin_flag.textile
167
189
  - wiki/strategies/many_roles.textile
@@ -204,18 +226,18 @@ specification_version: 3
204
226
  summary: Generic role strategies sharing the same API
205
227
  test_files:
206
228
  - spec/generator_spec_helper.rb
207
- - spec/generators/admin_flag_generator_spec.rb
208
- - spec/generators/many_roles_generator_spec.rb
209
- - spec/generators/one_role_generator_spec.rb
210
- - spec/generators/role_string_generator_spec.rb
211
- - spec/generators/role_strings_generator_spec.rb
212
- - spec/generators/roles_mask_generator_spec.rb
213
- - spec/generators/roles_string_generator_spec.rb
214
- - spec/roles_generic/admin_flag_spec.rb
215
- - spec/roles_generic/many_roles_spec.rb
216
- - spec/roles_generic/one_role_spec.rb
217
- - spec/roles_generic/role_string_spec.rb
218
- - spec/roles_generic/role_strings_spec.rb
219
- - spec/roles_generic/roles_mask_spec.rb
220
- - spec/roles_generic/roles_string_spec.rb
229
+ - spec/roles_generic/generators/admin_flag_generator_spec.rb
230
+ - spec/roles_generic/generators/many_roles_generator_spec.rb
231
+ - spec/roles_generic/generators/one_role_generator_spec.rb
232
+ - spec/roles_generic/generators/role_string_generator_spec.rb
233
+ - spec/roles_generic/generators/role_strings_generator_spec.rb
234
+ - spec/roles_generic/generators/roles_mask_generator_spec.rb
235
+ - spec/roles_generic/generators/roles_string_generator_spec.rb
236
+ - spec/roles_generic/strategy/multi/many_roles_spec.rb
237
+ - spec/roles_generic/strategy/multi/role_strings_spec.rb
238
+ - spec/roles_generic/strategy/multi/roles_mask_spec.rb
239
+ - spec/roles_generic/strategy/multi/roles_string_spec.rb
240
+ - spec/roles_generic/strategy/single/admin_flag_spec.rb
241
+ - spec/roles_generic/strategy/single/one_role_spec.rb
242
+ - spec/roles_generic/strategy/single/role_string_spec.rb
221
243
  - spec/spec_helper.rb
@@ -1,66 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :admin_flag
3
-
4
- class User
5
- include Roles::Generic
6
-
7
- attr_accessor :name
8
-
9
- strategy :admin_flag, :default
10
-
11
- valid_roles_are :admin, :user
12
-
13
- def initialize name, *new_roles
14
- self.name = name
15
- self.roles = new_roles
16
- end
17
- end
18
-
19
- describe "Generic AdminFlag role strategy" do
20
- context "default setup" do
21
-
22
- before :each do
23
- @admin_user = User.new 'Admin user', :admin
24
- @user = User.new 'User', :user
25
- end
26
-
27
- it "should have admin user role to :admin" do
28
- @admin_user.role.should == :admin
29
- @admin_user.roles.should == [:admin]
30
- @admin_user.admin?.should be_true
31
-
32
- @admin_user.class.valid_roles.should == [:admin, :user]
33
-
34
- @admin_user.has_role?(:user).should be_false
35
-
36
- @admin_user.has_role?(:admin).should be_true
37
- @admin_user.is?(:admin).should be_true
38
- @admin_user.has_roles?(:admin).should be_true
39
- @admin_user.has?(:admin).should be_true
40
- end
41
-
42
- it "should have user role to :user" do
43
- @user.roles.should == [:user]
44
- @user.admin?.should be_false
45
-
46
- @user.has_role?(:user).should be_true
47
- @user.has_role?(:admin).should be_false
48
- @user.is?(:admin).should be_false
49
-
50
- @user.has_roles?(:user).should be_true
51
- @user.has?(:admin).should be_false
52
- end
53
-
54
- it "should set user role to :admin using =" do
55
- @user.roles = :admin
56
- @user.role.should == :admin
57
- @user.has_role?(:admin).should be_true
58
- end
59
-
60
- it "should set user role to :admin using <<" do
61
- @user.role = :admin
62
- @user.role.should == :admin
63
- @user.has_role?(:admin).should be_true
64
- end
65
- end
66
- end
@@ -1,64 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :many_roles
3
-
4
- class User
5
- include Roles::Generic
6
- strategy :many_roles, :default
7
-
8
- role_class :role
9
-
10
- attr_accessor :name
11
-
12
- valid_roles_are :admin, :user
13
-
14
- def initialize name, *new_roles
15
- self.name = name
16
- self.roles = new_roles
17
- end
18
- end
19
-
20
-
21
- describe "Generic ManyRoles role strategy" do
22
- context "default setup" do
23
-
24
- before :each do
25
- @admin_user = User.new 'Admin user', :admin
26
- @user = User.new 'User', :user
27
- end
28
-
29
- it "should return all registered roles" do
30
- Role.all.should include(Role.roles.to_a[0])
31
- Role.names.should include( :admin, :user )
32
- end
33
-
34
- it "should have admin user role to :admin" do
35
- @admin_user.roles_list.first.should == :admin
36
- @admin_user.admin?.should be_true
37
-
38
- @admin_user.has_role?(:user).should be_false
39
-
40
- @admin_user.has_role?(:admin).should be_true
41
- @admin_user.is?(:admin).should be_true
42
- @admin_user.has_roles?(:admin).should be_true
43
- @admin_user.has?(:admin).should be_true
44
- end
45
-
46
- it "should have user role to :user" do
47
- @user.roles_list.first.should == :user
48
- @user.admin?.should be_false
49
-
50
- @user.has_role?(:user).should be_true
51
- @user.has_role?(:admin).should be_false
52
- @user.is?(:admin).should be_false
53
-
54
- @user.has_roles?(:admin).should be_false
55
- @user.has?(:admin).should be_false
56
- end
57
-
58
- it "should set user role to :admin using roles=" do
59
- @user.roles = :admin
60
- @user.roles_list.first.should == :admin
61
- @user.has_role?(:admin).should be_true
62
- end
63
- end
64
- end
@@ -1,71 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :one_role
3
-
4
- class User
5
- include Roles::Generic
6
- strategy :one_role, :default
7
-
8
- role_class :role
9
-
10
- attr_accessor :name
11
-
12
- valid_roles_are :admin, :user
13
-
14
- def initialize name, *new_roles
15
- self.name = name
16
- self.roles = new_roles
17
- end
18
- end
19
-
20
-
21
- describe "Generic OneRole role strategy" do
22
- context "default setup" do
23
-
24
- before :each do
25
- @admin_user = User.new 'Admin user', :admin
26
- @user = User.new 'User', :user
27
- end
28
-
29
- it "should return all registered roles" do
30
- Role.all.should include(Role.roles.to_a[0])
31
- Role.names.should include( :admin, :user )
32
- end
33
-
34
- it "should have admin user role to :admin" do
35
- @admin_user.role.should == :admin
36
- @admin_user.roles.should == [:admin]
37
- @admin_user.admin?.should be_true
38
-
39
- @admin_user.has_role?(:user).should be_false
40
-
41
- @admin_user.has_role?(:admin).should be_true
42
- @admin_user.is?(:admin).should be_true
43
- @admin_user.has_roles?(:admin).should be_true
44
- @admin_user.has?(:admin).should be_true
45
- end
46
-
47
- it "should have user role to :user" do
48
- @user.roles.should == [:user]
49
- @user.admin?.should be_false
50
-
51
- @user.has_role?(:user).should be_true
52
- @user.has_role?(:admin).should be_false
53
- @user.is?(:admin).should be_false
54
-
55
- @user.has_roles?(:admin).should be_false
56
- @user.has?(:admin).should be_false
57
- end
58
-
59
- it "should set user role to :admin using roles=" do
60
- @user.roles = :admin
61
- @user.role.should == :admin
62
- @user.has_role?(:admin).should be_true
63
- end
64
-
65
- it "should set user role to :admin using role=" do
66
- @user.roles = :admin
67
- @user.role.should == :admin
68
- @user.has_role?(:admin).should be_true
69
- end
70
- end
71
- end
@@ -1,65 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :role_string
3
-
4
- class User
5
- include Roles::Generic
6
-
7
- attr_accessor :name
8
-
9
- strategy :role_string, :default
10
-
11
- roles :admin, :user
12
-
13
- def initialize name, *new_roles
14
- self.name = name
15
- self.roles = new_roles
16
- end
17
- end
18
-
19
-
20
- describe "Generic RoleString role strategy" do
21
- context "default setup" do
22
-
23
- before :each do
24
- @admin_user = User.new 'Admin user', :admin
25
- @user = User.new 'User', :user
26
- end
27
-
28
- it "should have admin user role to :admin" do
29
- @admin_user.role.should == :admin
30
- @admin_user.roles.should == [:admin]
31
- @admin_user.admin?.should be_true
32
-
33
- @admin_user.has_role?(:user).should be_false
34
-
35
- @admin_user.has_role?(:admin).should be_true
36
- @admin_user.is?(:admin).should be_true
37
- @admin_user.has_roles?(:admin).should be_true
38
- @admin_user.has?(:admin).should be_true
39
- end
40
-
41
- it "should have user role to :user" do
42
- @user.roles.should == [:user]
43
- @user.admin?.should be_false
44
-
45
- @user.has_role?(:user).should be_true
46
- @user.has_role?(:admin).should be_false
47
- @user.is?(:admin).should be_false
48
-
49
- @user.has_roles?(:admin).should be_false
50
- @user.has?(:admin).should be_false
51
- end
52
-
53
- it "should set user role to :admin using roles=" do
54
- @user.roles = :admin
55
- @user.role.should == :admin
56
- @user.has_role?(:admin).should be_true
57
- end
58
-
59
- it "should set user role to :admin using role=" do
60
- @user.role = :admin
61
- @user.role.should == :admin
62
- @user.has_role?(:admin).should be_true
63
- end
64
- end
65
- end