roles_mongo_mapper 0.1.4 → 0.2.0

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 (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
-