roles_mongo_mapper 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/README.markdown +11 -2
  2. data/Rakefile +7 -6
  3. data/VERSION +1 -1
  4. data/lib/roles_mongo_mapper/base.rb +21 -4
  5. data/lib/roles_mongo_mapper/embedded_role.rb +35 -0
  6. data/lib/roles_mongo_mapper/role.rb +7 -5
  7. data/lib/roles_mongo_mapper/strategy/multi.rb +59 -0
  8. data/lib/roles_mongo_mapper/strategy/multi/embed_many_roles.rb +71 -0
  9. data/lib/roles_mongo_mapper/strategy/multi/many_roles.rb +69 -23
  10. data/lib/roles_mongo_mapper/strategy/multi/role_strings.rb +44 -24
  11. data/lib/roles_mongo_mapper/strategy/multi/roles_mask.rb +67 -19
  12. data/lib/roles_mongo_mapper/strategy/shared.rb +29 -0
  13. data/lib/roles_mongo_mapper/strategy/single.rb +34 -0
  14. data/lib/roles_mongo_mapper/strategy/single/admin_flag.rb +50 -15
  15. data/lib/roles_mongo_mapper/strategy/single/embed_one_role.rb +79 -0
  16. data/lib/roles_mongo_mapper/strategy/single/one_role.rb +38 -30
  17. data/lib/roles_mongo_mapper/strategy/single/role_string.rb +20 -18
  18. data/roles_mongo_mapper.gemspec +51 -32
  19. data/sandbox/test.rb +13 -3
  20. data/spec/roles_mongo_mapper/strategy/api_examples.rb +199 -0
  21. data/spec/roles_mongo_mapper/strategy/hooks.rb +7 -0
  22. data/spec/roles_mongo_mapper/strategy/multi/embed_many_roles_spec.rb +19 -0
  23. data/spec/roles_mongo_mapper/strategy/multi/many_roles_spec.rb +19 -0
  24. data/spec/roles_mongo_mapper/strategy/multi/role_strings_spec.rb +19 -0
  25. data/spec/roles_mongo_mapper/strategy/multi/roles_mask_spec.rb +18 -0
  26. data/spec/roles_mongo_mapper/strategy/single/admin_flag_spec.rb +18 -0
  27. data/spec/roles_mongo_mapper/strategy/single/embed_one_role_spec.rb +19 -0
  28. data/spec/roles_mongo_mapper/strategy/single/one_role_spec.rb +20 -0
  29. data/spec/roles_mongo_mapper/strategy/single/role_string_spec.rb +19 -0
  30. data/spec/roles_mongo_mapper/strategy/user_setup.rb +13 -0
  31. data/spec/spec_helper.rb +11 -6
  32. metadata +60 -32
  33. data/spec/roles_mongo_mapper/strategy/admin_flag_spec.rb +0 -76
  34. data/spec/roles_mongo_mapper/strategy/many_roles_spec.rb +0 -69
  35. data/spec/roles_mongo_mapper/strategy/one_role_spec.rb +0 -66
  36. data/spec/roles_mongo_mapper/strategy/role_string_spec.rb +0 -68
  37. data/spec/roles_mongo_mapper/strategy/role_strings_spec.rb +0 -69
  38. data/spec/roles_mongo_mapper/strategy/roles_mask_spec.rb +0 -69
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :admin_flag
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :admin_flag, :default
9
+ valid_roles_are :admin, :guest
10
+
11
+ key :name, :type => String
12
+ end
13
+
14
+ def api_name
15
+ :admin_flag
16
+ end
17
+
18
+ load 'roles_mongo_mapper/strategy/api_examples.rb'
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :embed_one_role
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :embed_one_role, :role_class => :role, :config => :default
9
+ role_class :role
10
+ valid_roles_are :admin, :guest
11
+
12
+ key :name, :type => String
13
+ end
14
+
15
+ def api_name
16
+ :embed_one_role
17
+ end
18
+
19
+ load 'roles_mongo_mapper/strategy/api_examples.rb'
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :one_role
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :one_role, :default
9
+ role_class :role
10
+ valid_roles_are :admin, :guest
11
+
12
+ key :name, :type => String
13
+ end
14
+
15
+ def api_name
16
+ :one_role
17
+ end
18
+
19
+ load 'roles_mongo_mapper/strategy/api_examples.rb'
20
+
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ use_roles_strategy :role_string
3
+
4
+ class User
5
+ include MongoMapper::Document
6
+ include Roles::MongoMapper
7
+
8
+ strategy :role_string, :default
9
+ valid_roles_are :admin, :guest
10
+
11
+ key :name, :type => String
12
+ end
13
+
14
+ def api_name
15
+ :role_string
16
+ end
17
+
18
+ load 'roles_mongo_mapper/strategy/api_examples.rb'
19
+
@@ -0,0 +1,13 @@
1
+ def default_user_setup
2
+ @guest_user = User.create(:name => 'Guest user')
3
+ @guest_user.add_roles :guest
4
+ @guest_user.save
5
+
6
+ @normal_user = User.create(:name => 'Normal user')
7
+ @normal_user.roles = :guest, :user
8
+ @normal_user.save
9
+
10
+ @admin_user = User.create(:name => 'Admin user')
11
+ @admin_user.add_roles :admin
12
+ @admin_user.save
13
+ end
data/spec/spec_helper.rb CHANGED
@@ -3,6 +3,11 @@ require 'roles_mongo_mapper'
3
3
 
4
4
  MongoMapper.database = 'roles_mongo_mapper'
5
5
 
6
+ MongoMapper.database.collections.each do |coll|
7
+ coll.drop unless coll.name =~ /(.*\.)?system\..*/
8
+ end
9
+
10
+
6
11
  module Database
7
12
  def self.teardown
8
13
  # MongoMapper.database.collections.each {|collection| collection.drop }
@@ -14,13 +19,13 @@ end
14
19
 
15
20
  RSpec.configure do |config|
16
21
  config.mock_with :mocha
17
- config.before do
18
- Database.teardown
19
- end
22
+ # config.before do
23
+ # Database.teardown
24
+ # end
20
25
 
21
- config.after do
22
- Database.teardown
23
- end
26
+ # config.after do
27
+ # Database.teardown
28
+ # end
24
29
 
25
30
  end
26
31
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 4
9
- version: 0.1.4
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
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-10-07 00:00:00 +02:00
17
+ date: 2010-11-24 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -27,10 +27,8 @@ dependencies:
27
27
  - !ruby/object:Gem::Version
28
28
  segments:
29
29
  - 2
30
- - 0
31
- - 0
32
- - rc
33
- version: 2.0.0.rc
30
+ - 1
31
+ version: "2.1"
34
32
  type: :development
35
33
  version_requirements: *id001
36
34
  - !ruby/object:Gem::Dependency
@@ -54,7 +52,7 @@ dependencies:
54
52
  requirement: &id003 !ruby/object:Gem::Requirement
55
53
  none: false
56
54
  requirements:
57
- - - ~>
55
+ - - ">="
58
56
  - !ruby/object:Gem::Version
59
57
  segments:
60
58
  - 0
@@ -74,8 +72,7 @@ dependencies:
74
72
  segments:
75
73
  - 3
76
74
  - 0
77
- - 0
78
- version: 3.0.0
75
+ version: "3.0"
79
76
  type: :runtime
80
77
  version_requirements: *id004
81
78
  - !ruby/object:Gem::Dependency
@@ -103,9 +100,9 @@ dependencies:
103
100
  - !ruby/object:Gem::Version
104
101
  segments:
105
102
  - 0
106
- - 2
107
- - 11
108
- version: 0.2.11
103
+ - 3
104
+ - 0
105
+ version: 0.3.0
109
106
  type: :runtime
110
107
  version_requirements: *id006
111
108
  - !ruby/object:Gem::Dependency
@@ -118,13 +115,13 @@ dependencies:
118
115
  - !ruby/object:Gem::Version
119
116
  segments:
120
117
  - 0
121
- - 2
122
- - 7
123
- version: 0.2.7
118
+ - 3
119
+ - 3
120
+ version: 0.3.3
124
121
  type: :runtime
125
122
  version_requirements: *id007
126
123
  - !ruby/object:Gem::Dependency
127
- name: logging_assist
124
+ name: rails3_artifactor
128
125
  prerelease: false
129
126
  requirement: &id008 !ruby/object:Gem::Requirement
130
127
  none: false
@@ -133,11 +130,26 @@ dependencies:
133
130
  - !ruby/object:Gem::Version
134
131
  segments:
135
132
  - 0
136
- - 1
137
133
  - 3
138
- version: 0.1.3
134
+ - 0
135
+ version: 0.3.0
139
136
  type: :runtime
140
137
  version_requirements: *id008
138
+ - !ruby/object:Gem::Dependency
139
+ name: logging_assist
140
+ prerelease: false
141
+ requirement: &id009 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ segments:
147
+ - 0
148
+ - 1
149
+ - 5
150
+ version: 0.1.5
151
+ type: :runtime
152
+ version_requirements: *id009
141
153
  description: Makes it easy to set a role strategy on your User model in MongoMapper
142
154
  email: kmandrup@gmail.com
143
155
  executables: []
@@ -158,25 +170,36 @@ files:
158
170
  - lib/generators/mongo_mapper/roles/roles_generator.rb
159
171
  - lib/roles_mongo_mapper.rb
160
172
  - lib/roles_mongo_mapper/base.rb
173
+ - lib/roles_mongo_mapper/embedded_role.rb
161
174
  - lib/roles_mongo_mapper/namespaces.rb
162
175
  - lib/roles_mongo_mapper/role.rb
163
176
  - lib/roles_mongo_mapper/strategy.rb
177
+ - lib/roles_mongo_mapper/strategy/multi.rb
178
+ - lib/roles_mongo_mapper/strategy/multi/embed_many_roles.rb
164
179
  - lib/roles_mongo_mapper/strategy/multi/many_roles.rb
165
180
  - lib/roles_mongo_mapper/strategy/multi/role_strings.rb
166
181
  - lib/roles_mongo_mapper/strategy/multi/roles_mask.rb
182
+ - lib/roles_mongo_mapper/strategy/shared.rb
183
+ - lib/roles_mongo_mapper/strategy/single.rb
167
184
  - lib/roles_mongo_mapper/strategy/single/admin_flag.rb
185
+ - lib/roles_mongo_mapper/strategy/single/embed_one_role.rb
168
186
  - lib/roles_mongo_mapper/strategy/single/one_role.rb
169
187
  - lib/roles_mongo_mapper/strategy/single/role_string.rb
170
188
  - roles_mongo_mapper.gemspec
171
189
  - sandbox/test.rb
172
190
  - spec/generator_spec_helper.rb
173
191
  - spec/roles_mongo_mapper/generators/roles_generator_spec.rb
174
- - spec/roles_mongo_mapper/strategy/admin_flag_spec.rb
175
- - spec/roles_mongo_mapper/strategy/many_roles_spec.rb
176
- - spec/roles_mongo_mapper/strategy/one_role_spec.rb
177
- - spec/roles_mongo_mapper/strategy/role_string_spec.rb
178
- - spec/roles_mongo_mapper/strategy/role_strings_spec.rb
179
- - spec/roles_mongo_mapper/strategy/roles_mask_spec.rb
192
+ - spec/roles_mongo_mapper/strategy/api_examples.rb
193
+ - spec/roles_mongo_mapper/strategy/hooks.rb
194
+ - spec/roles_mongo_mapper/strategy/multi/embed_many_roles_spec.rb
195
+ - spec/roles_mongo_mapper/strategy/multi/many_roles_spec.rb
196
+ - spec/roles_mongo_mapper/strategy/multi/role_strings_spec.rb
197
+ - spec/roles_mongo_mapper/strategy/multi/roles_mask_spec.rb
198
+ - spec/roles_mongo_mapper/strategy/single/admin_flag_spec.rb
199
+ - spec/roles_mongo_mapper/strategy/single/embed_one_role_spec.rb
200
+ - spec/roles_mongo_mapper/strategy/single/one_role_spec.rb
201
+ - spec/roles_mongo_mapper/strategy/single/role_string_spec.rb
202
+ - spec/roles_mongo_mapper/strategy/user_setup.rb
180
203
  - spec/spec_helper.rb
181
204
  has_rdoc: true
182
205
  homepage: http://github.com/kristianmandrup/roles_mongo_mapper
@@ -213,10 +236,15 @@ summary: Implementation of Roles generic API for MongoMapper
213
236
  test_files:
214
237
  - spec/generator_spec_helper.rb
215
238
  - spec/roles_mongo_mapper/generators/roles_generator_spec.rb
216
- - spec/roles_mongo_mapper/strategy/admin_flag_spec.rb
217
- - spec/roles_mongo_mapper/strategy/many_roles_spec.rb
218
- - spec/roles_mongo_mapper/strategy/one_role_spec.rb
219
- - spec/roles_mongo_mapper/strategy/role_string_spec.rb
220
- - spec/roles_mongo_mapper/strategy/role_strings_spec.rb
221
- - spec/roles_mongo_mapper/strategy/roles_mask_spec.rb
239
+ - spec/roles_mongo_mapper/strategy/api_examples.rb
240
+ - spec/roles_mongo_mapper/strategy/hooks.rb
241
+ - spec/roles_mongo_mapper/strategy/multi/embed_many_roles_spec.rb
242
+ - spec/roles_mongo_mapper/strategy/multi/many_roles_spec.rb
243
+ - spec/roles_mongo_mapper/strategy/multi/role_strings_spec.rb
244
+ - spec/roles_mongo_mapper/strategy/multi/roles_mask_spec.rb
245
+ - spec/roles_mongo_mapper/strategy/single/admin_flag_spec.rb
246
+ - spec/roles_mongo_mapper/strategy/single/embed_one_role_spec.rb
247
+ - spec/roles_mongo_mapper/strategy/single/one_role_spec.rb
248
+ - spec/roles_mongo_mapper/strategy/single/role_string_spec.rb
249
+ - spec/roles_mongo_mapper/strategy/user_setup.rb
222
250
  - spec/spec_helper.rb
@@ -1,76 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :admin_flag
3
-
4
- class User
5
- include MongoMapper::Document
6
- include Roles::MongoMapper
7
-
8
- strategy :admin_flag, :default
9
- valid_roles_are :admin, :guest
10
-
11
- key :name, String
12
- end
13
-
14
- describe "Roles for MongoMapper" do
15
- after :each do
16
- Database.teardown
17
- end
18
-
19
- before :each do
20
- @user = User.create(:name => 'Kristian')
21
- @user.roles = :guest
22
- @user.save
23
-
24
- @admin_user = User.create(:name => 'Admin user')
25
- @admin_user.roles = :admin
26
- @admin_user.save
27
- end
28
-
29
- describe "Admin flag strategy " do
30
-
31
- describe '#in_role' do
32
- it "should return first user maching role" do
33
- puts "Guest: #{User.where(:name => "Kristian").first}"
34
-
35
- User.in_role(:guest).first.name.should == 'Kristian'
36
- User.in_role(:admin).first.name.should == 'Admin user'
37
- end
38
- end
39
-
40
- describe 'roles API' do
41
- it "should have admin user role to :admin" do
42
- @admin_user.role.should == :admin
43
- @admin_user.roles.should == [:admin]
44
- @admin_user.admin?.should be_true
45
-
46
- @admin_user.class.valid_roles.should == [:admin, :guest]
47
-
48
- @admin_user.has_role?(:guest).should be_false
49
-
50
- @admin_user.has_role?(:admin).should be_true
51
- @admin_user.is?(:admin).should be_true
52
- @admin_user.has_roles?(:admin).should be_true
53
- @admin_user.has?(:admin).should be_true
54
- end
55
-
56
- it "should have user role to :guest" do
57
- @user.roles.should == [:guest]
58
- @user.admin?.should be_false
59
-
60
- @user.has_role?(:guest).should be_true
61
- @user.has_role?(:admin).should be_false
62
- @user.is?(:admin).should be_false
63
-
64
- @user.has_roles?(:guest).should be_true
65
- @user.has?(:admin).should be_false
66
- end
67
-
68
- it "should set user role to :admin using =" do
69
- @user.roles = :admin
70
- @user.role.should == :admin
71
- @user.has_role?(:admin).should be_true
72
- end
73
- end
74
- end
75
- end
76
-
@@ -1,69 +0,0 @@
1
- require 'spec_helper'
2
- use_roles_strategy :many_roles
3
-
4
- class User
5
- include MongoMapper::Document
6
- include Roles::MongoMapper
7
-
8
- strategy :many_roles, :default
9
- role_class :role
10
-
11
- key :name, String
12
- end
13
-
14
- describe "Roles for MongoMapper" do
15
- context "default setup" do
16
-
17
- before do
18
- User.valid_roles_are :admin, :guest
19
-
20
- @user = User.create(:name => 'Kristian')
21
- @user.add_roles :guest
22
- @user.save
23
-
24
- @admin_user = User.create(:name => 'Admin user')
25
- @admin_user.roles = :admin
26
- @admin_user.save
27
- end
28
-
29
- describe '#in_role' do
30
- it "should return first user matching role" do
31
- User.in_role(:guest).first.name.should == 'Kristian'
32
- User.in_role(:admin).first.name.should == 'Admin user'
33
- end
34
- end
35
-
36
- describe "Role API" do
37
- it "should have admin user role to :admin" do
38
- @admin_user.roles_list.first.should == :admin
39
- @admin_user.admin?.should be_true
40
-
41
- @admin_user.has_role?(:guest).should be_false
42
-
43
- @admin_user.has_role?(:admin).should be_true
44
- @admin_user.is?(:admin).should be_true
45
- @admin_user.has_roles?(:admin).should be_true
46
- @admin_user.has?(:admin).should be_true
47
- end
48
-
49
- it "should have user role to :guest" do
50
- @user.roles_list.first.should == :guest
51
- @user.admin?.should be_false
52
-
53
- @user.has_role?(:guest).should be_true
54
- @user.has_role?(:admin).should be_false
55
- @user.is?(:admin).should be_false
56
-
57
- @user.has_roles?(:admin).should be_false
58
- @user.has?(:admin).should be_false
59
- end
60
-
61
- it "should set user role to :admin using roles=" do
62
- @user.roles = :admin
63
- @user.roles_list.first.should == :admin
64
- @user.has_role?(:admin).should be_true
65
- end
66
- end
67
- end
68
- end
69
-