cancan-permits 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog.txt CHANGED
@@ -1,3 +1,6 @@
1
+ ## Jan 9, 2011
2
+ Compatibility with CanCan 1.5
3
+
1
4
  ## Nov 25, 2010
2
5
 
3
6
  Fixed some generator issues and split generator into:
data/Gemfile ADDED
@@ -0,0 +1,19 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :default do
4
+ gem 'cancan', ">= 1.4.1"
5
+ gem 'require_all', "~> 1.2.0"
6
+ gem 'sugar-high', "~> 0.3.0"
7
+ gem 'rails3_artifactor', "~> 0.3.1"
8
+ gem 'activemodel', ">= 3.0.1"
9
+ gem 'activesupport', ">= 3.0.1"
10
+ gem 'activeresource', ">= 3.0.1"
11
+ gem 'logging_assist', ">= 0.1.6"
12
+ end
13
+
14
+ group :development, :test do
15
+ gem "rspec", ">= 2.0.1"
16
+ gem 'code-spec', "~> 0.2.9"
17
+ gem 'rails-app-spec', "~> 0.3.1"
18
+ end
19
+
data/README.markdown CHANGED
@@ -45,141 +45,30 @@ Modify the User model in 'models/user.rb' (optional)
45
45
  end
46
46
  </pre>
47
47
 
48
- ## Load Permissions from yaml files
48
+ ## Permits configuration
49
49
 
50
- Permissions can be defined in yaml files in the config directory of your Rails app.
51
- These permissions will then be applied at the appropriate point when calculation permissions of the user.
50
+ Permits can be configured [using permits configuration files](https://github.com/kristianmandrup/cancan-permits/wiki/Using-permits-configuration-files)
52
51
 
53
- * Individual user permissions
54
- * Permits
55
- * Licenses
52
+ ### Users, roles and permissions
56
53
 
57
- ### Permission editor
54
+ _CanCan permits_ requires that you have some kind of 'role system' in place and that _User#has_role?_ returns whether the user has a given role (pass role argument as symbol or string). You can either add a 'role' directly to the _User_ class or fx use a [Roles Generic](https://github.com/kristianmandrup/roles_generic) role strategy.
58
55
 
59
- A simple [Permits editor](https://github.com/kristianmandrup/permits_editor) is available. This is a Rails 3 app which provides a web interface to
60
- edit the permits config files for: user permissions, permits and licenses.
56
+ ## Application configuration for CanCan Permits
61
57
 
62
- I would like to have this editor refactored into an engine and later into a mountable app so that this administrative interface can easily be integrated into a Cream app.
58
+ * Define roles that Users can have
59
+ * Define which roles are available
60
+ * Define a Permit for each role.
61
+ * For each Permit, define what Users with a role matching the permit can do
63
62
 
64
- _You are most welcome to help in this effort ;)_
63
+ To add roles to your app, you might consider using a *roles* gem such as [Roles Generic](http://github.com/kristianmandrup/roles_generic) or any of the ORM specific variants.
65
64
 
66
- ### Individual user permissions
65
+ CanCan permits is integrated with [CanCan REST links](https://github.com/kristianmandrup/cancan-rest-links), letting you easily control which users have access to which models in your app.
67
66
 
68
- You can define individual user permissions in a yaml file.
69
-
70
- YAML file: _config/user_permissions.yml_
67
+ Note that [Cream](https://github.com/kristianmandrup/cream) has a _full_config_ generator that automatically configures all this for you in a standard configuration which integrates all the various parts (and even supports multiple ORMs) !!!
71
68
 
72
- Each key at the top level is expected to match an email value for a user.
69
+ ### Define which roles are available
73
70
 
74
- Example yaml config file:
75
- <pre>abc@mail.ru:
76
- can:
77
- update: [Comment, Fruit, Car, Friendship]
78
- manage:
79
- - Article
80
- owns:
81
- - User
82
- mike.shedlock@acc.com:
83
- can:
84
- read:
85
- - all
86
- cannot:
87
- update:
88
- - Post
89
- </pre>
90
-
91
- Loading YAML user_permits file in a Permit:
92
- <pre>class AdminPermit < Permit::Base
93
- def initialize(ability, options = {})
94
- super
95
- end
96
-
97
- def permit?(user, options = {})
98
- super
99
- return if !role_match? user
100
- can :manage, :all
101
-
102
- load_rules user
103
- end
104
- end
105
- </pre>
106
-
107
- The call to #load_rules will call both _#load_user_roles_ and _#load_role_rules_. Hence by default it applies both the _user_permits_ and _permits_ config files.
108
- If you want, you can call these methods individually in case only want to apply one set of rules.
109
-
110
- ### Permit rules
111
-
112
- YAML file: _config/permits.yml_
113
-
114
- Each key at the top level is expected to match a permit/role name.
115
-
116
- Example yml config file:
117
- <pre>admin:
118
- can:
119
- manage:
120
- - Article
121
- - Post
122
- guest:
123
- can:
124
- manage:
125
- - all
126
- cannot:
127
- manage:
128
- - User
129
- </pre>
130
-
131
- As you can see
132
-
133
- ### License permissions
134
-
135
- YAML file: _config/licenses.yml_
136
-
137
- Each key at the top level is expected to match a license name.
138
-
139
- Example yml config file:
140
-
141
- <pre>blogging:
142
- can:
143
- manage:
144
- - Article
145
- - Post
146
- admin:
147
- can:
148
- manage:
149
- - all
150
- cannot:
151
- manage:
152
- - User
153
- </pre>
154
-
155
- Usage in a license:
156
- <pre>class UserAdminLicense < License::Base
157
- def initialize name
158
- super
159
- end
160
-
161
- def enforce!
162
- can(:manage, User)
163
-
164
- load_rules
165
- end
166
- </pre>
167
-
168
- ### User Roles
169
-
170
- _CanCan permits_ requires that you have some kind of Role system in place and that User#has_role? uses this Role system.
171
- You can either add a 'role' field directly to User or fx use a [Roles Generic ](https://github.com/kristianmandrup/roles_generic) role strategy.
172
-
173
- ## Usage
174
-
175
- * Define Roles that Users can have
176
- * Define which Roles are available
177
- * Define a Permit for each Role.
178
- * For each Permit, define what that Role can do
179
-
180
- To add Roles to your app, you might consider using a *roles* gem such as [Roles Generic](http://github.com/kristianmandrup/roles_generic) or any of the ORM specific variants.
181
-
182
- ### Define which Roles are available
71
+ _CanCan permits_ uses the following strategy to discover which roles are available in the app.
183
72
 
184
73
  Default configuration:
185
74
  <pre>module Permits::Roles
@@ -211,41 +100,27 @@ Permit example:
211
100
  end
212
101
 
213
102
  def permit?(user, options = {})
214
- super
215
- return if !role_match? user
216
- can :manage, :all
103
+ return if !role_match? user
104
+
105
+ can(:read, Blog)
106
+ can(:manage, Article)
107
+ owns(user, Post)
217
108
  end
218
109
  end
219
110
  </pre>
220
111
 
221
- ## Special Permits
222
-
223
- The Permits generator always generates the special permits *Any* and *System*.
224
-
225
- ### Any permit
112
+ Alternatively you can use <code>return if !super user, :in_role</code> to exit if the user doesn't have a role that matches the Permit.
113
+ This will in effect execute the same test.
226
114
 
227
- The Any permit, can be used to set permissions that should hold true for a user in any role.
228
- F.ex, maybe in your app, any user should be able to read comments, articles and posts:
115
+ _Ownership permission:_
229
116
 
230
- For this to hold true, put the following permit logic in your Any permit.
231
- <pre>can :read, [Comment, Article, Post]</pre>
117
+ The _owns_ call is a special built-in way to define ownership permission. The #_owns_ call can also pe used inside Permits.
118
+ If a user owns an object instance that user will automatically have :manage permissions to that object instance.
232
119
 
233
- ### System permit
120
+ ### Special permits
234
121
 
235
- The System permit is run before any of the other permits. This gives you a chance to control the permission flow.
236
- By returning a value of :break you force a break-out from the permission flow, ensuring none of the other permits are run.
237
-
238
- Example:
239
- The system permit can be used to allow management of all resources when the request is from localhost (which usually means "in development mode").
240
- By default this logic is setup and ready to go.
241
-
242
- You can configure this simply by setting the following boolean class variable:
243
-
244
- <code>Permits::Configuration.localhost_manager = true</code>
245
-
246
- ## Default roles
247
-
248
- By default the permits for the roles System and Guest are also generated.
122
+ The Permits system uses some [special permits](https://github.com/kristianmandrup/cancan-permits/wiki/Special-permits) that can be configured for
123
+ avanced permission scenarios as described in the wiki.
249
124
 
250
125
  ### Licenses
251
126
 
@@ -268,7 +143,7 @@ License example:
268
143
  end
269
144
  </pre>
270
145
 
271
- Usage example:
146
+ Licenses usage example:
272
147
  <pre>class GuestPermit < Permit::Base
273
148
  def initialize(ability, options = {})
274
149
  super
@@ -286,9 +161,9 @@ end
286
161
 
287
162
  The permits system will try to find a license named UserAdminLicense and BloggingLicense in this example and then call _#enforce!_ on each license.
288
163
 
289
- ## ORMs
164
+ ## Using Permits with an ORM
290
165
 
291
- The easiest option is to directly set the orm as a class variable. An appropriate ownership strategy will be selected accordingly for the ORM.
166
+ The easiest option is to directly set the orm as a class variable. An appropriate 'ownership strategy' will be selected accordingly for the ORM.
292
167
 
293
168
  <pre>
294
169
  Permits::Ability.orm = :data_mapper
@@ -297,9 +172,9 @@ The easiest option is to directly set the orm as a class variable. An appropriat
297
172
  The ORMs currently supported (and tested) are :active_record, :data_mapper, :mongoid, :mongo_mapper
298
173
 
299
174
  For more fine grained control, you can set a :strategy option directly on the Ability instance. This way the ownership strategy is set explicitly.
300
- The current valid values are :default and :string.
175
+ The current valid values are _:default_ and _:string_.
301
176
 
302
- The strategy option :string can be used for most ORMs. Setting orm to :active_record or :generic makes use of the :default strategy.
177
+ The strategy option :string can be used for most ORMs. Setting _orm__ to _:active_record_ or _:generic_ makes use of the _:default_ strategy.
303
178
  All the other ORMs use the :string ownership strategy,
304
179
 
305
180
  Note: You can dive into the code and implement your own strategy if needed.
@@ -328,7 +203,7 @@ Advanced #permit? functionality:
328
203
  end
329
204
  </pre>
330
205
 
331
- ### Global manage permission for localhost
206
+ ### Configuring global management permission for localhost
332
207
 
333
208
  The Permits system allows a global setting in order to allow localhost to manage all objects. This can be useful in development or administration mode.
334
209
 
@@ -337,8 +212,6 @@ To configure permits to allow localhost to manage objects:
337
212
  Permits::Configuration.localhost_manager = true
338
213
  </code>
339
214
 
340
- Please provide suggestions and feedback on how to improve this :)
341
-
342
215
  Assuming the following:
343
216
  - a request object is present
344
217
  - the host of the request is 'localhost'
@@ -348,6 +221,8 @@ Then the user is allowed to manage all objects and no other Permits will be eval
348
221
 
349
222
  Note: In the code above, the built in <code>#localhost_manager?</code> method is used.
350
223
 
224
+ _Please provide suggestions and feedback on how to improve this :)_
225
+
351
226
  ## Generators
352
227
 
353
228
  The gem comes with the following generators
@@ -357,100 +232,7 @@ The gem comes with the following generators
357
232
  * cancan:licenses - generate multiple licenses
358
233
  * cancan:license - generate a single license
359
234
 
360
- ## Permits Generator
361
-
362
- Generates one or more permits in _app/permits_
363
-
364
- Options
365
- * --orm : The ORM to use (active_record, data_mapper, mongoid, mongo_mapper) - creates a Rails initializer
366
- * --initializer : A Rails 3 initializer file for Permits is generated by default. Use --no-initializer option to disable this
367
- * --roles : The roles for which to generate permits ; default Guest (read all) and Admin (manage all)
368
- * --default-permits : By default :guest and :admin permits are generated. Use --no-default-permits option to disable this
369
-
370
- <code>$ rails g cancan:permits --orm active_record --roles guest author admin</code>
371
-
372
- ### What does the generator generate?
373
-
374
- To get an understanding of what the generator generates for a Rails 3 application, try to run the spec _permit_generator_spec.rb_ with _RSpec 2_ as follows:
375
-
376
- In the file _permits_generator_spec.rb_ make the following change <code>config.remove_temp_dir = false</code>
377
- This will prevent the rails /tmp dir from being deleted after the test run, so you can inspect what is generated in the Rails app.
378
-
379
- Now run the generator spec to see the result:
380
- <code>$ rspec spec/generators/cancan/permits_generator_spec.rb</code>
381
-
382
- ## Licenses Generator
383
-
384
- Generates one or more licenses in _app/licenses_
385
-
386
- Options
387
- * --licenses : The licenses to generate; default UserAdmin and Blogging licenses are generated
388
- * --default-licenses : By default exemplar licenses are generated. Use --no-default-licenses option to disable this
389
-
390
- Run examples:
391
-
392
- Generate default licenses:
393
-
394
- <code>$ rails g cancan:licenses</code>
395
-
396
- Genereate specific licenses (no defaults):
397
-
398
- <code>$ rails g cancan:licenses profile_administration article_editing --no-default-licenses</code>
399
-
400
- Create both specific and default licenses:
401
-
402
- <code>$ rails g cancan:licenses profile_administration article_editing</code>
403
-
404
- ### What does the generator generate?
405
-
406
- To get an understanding of what the generator generates for a Rails 3 application, try to run the spec _licenses_generator_spec.rb_ with rspec 2 as follows:
407
-
408
- In the file _licenses_generator_spec.rb_ make the following change <code>config.remove_temp_dir = false</code>
409
- This will prevent the rails /tmp dir from being deleted after the test run, so you can inspect what is generated in the Rails app.
410
-
411
- Now run the generator spec to see the result:
412
- <code>$ rspec spec/generators/cancan/licenses_generator_spec.rb</code>
413
-
414
-
415
- ## License Generator
416
-
417
- Generates a single license in _app/licenses_
418
-
419
- <code>rails g cancan:license [NAME]</code>
420
-
421
- Options
422
- * --creates : The models that have 'creates' permission for the holder of this license
423
- * --owns : The models that have 'owns' permission for the holder of this license
424
- * --manages : The models that have 'manages' permission for the holder of this license
425
- * --read : The models that have 'read' permission for the holder of this license
426
-
427
- Run examples:
428
-
429
- Generate licenses:
430
-
431
- <code>$ rails g cancan:license blog_editing --owns article post --read blog --licenses blogging</code>
432
-
433
- ## Permit Generator
434
-
435
- Generates a single license in _app/permits_
436
-
437
- <code>rails g cancan:permit [ROLE]</code>
438
-
439
- Options
440
- * --creates : The models that have 'creates' permission for the holder of this license
441
- * --owns : The models that have 'owns' permission for the holder of this license
442
- * --manages : The models that have 'manages' permission for the holder of this license
443
- * --read : The models that have 'read' permission for the holder of this license
444
-
445
- Run examples:
446
-
447
- Generate licenses:
448
-
449
- <code>$ rails g cancan:permit editor --owns article post --read blog --licenses blog_editing</code>
450
-
451
- # TODO
452
-
453
- The Permits generator should attempt to attempt to uncover which roles are currently defined as available to the system, trying Cream#available_roles and then User#roles. It could then generate permits for those roles. Any roles specified in the --roles option should be merged with the roles available in the app.
235
+ The generators are described in detail [here](https://github.com/kristianmandrup/cancan-permits/wiki/Permits-and-License-generators)
454
236
 
455
237
  ## Note on Patches/Pull Requests
456
238
 
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ begin
11
11
  gem.add_development_dependency 'code-spec', "~> 0.2.9"
12
12
  gem.add_development_dependency 'rails-app-spec', "~> 0.3.1"
13
13
 
14
- gem.add_dependency 'cancan', "~> 1.4.1"
14
+ gem.add_dependency 'cancan', ">= 1.4.1"
15
15
  gem.add_dependency 'require_all', "~> 1.2.0"
16
16
  gem.add_dependency 'sugar-high', "~> 0.3.0"
17
17
  gem.add_dependency 'rails3_artifactor', "~> 0.3.1"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.7
1
+ 0.3.8
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cancan-permits}
8
- s.version = "0.3.7"
8
+ s.version = "0.3.8"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = %q{2010-12-24}
12
+ s.date = %q{2011-01-09}
13
13
  s.description = %q{Role specific Permits for use with CanCan permission system}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ".document",
21
21
  ".rspec",
22
22
  "Changelog.txt",
23
+ "Gemfile",
23
24
  "LICENSE",
24
25
  "README.markdown",
25
26
  "Rakefile",
@@ -169,10 +170,21 @@ Gem::Specification.new do |s|
169
170
  s.specification_version = 3
170
171
 
171
172
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
173
+ s.add_runtime_dependency(%q<cancan>, [">= 1.4.1"])
174
+ s.add_runtime_dependency(%q<require_all>, ["~> 1.2.0"])
175
+ s.add_runtime_dependency(%q<sugar-high>, ["~> 0.3.0"])
176
+ s.add_runtime_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
177
+ s.add_runtime_dependency(%q<activemodel>, [">= 3.0.1"])
178
+ s.add_runtime_dependency(%q<activesupport>, [">= 3.0.1"])
179
+ s.add_runtime_dependency(%q<activeresource>, [">= 3.0.1"])
180
+ s.add_runtime_dependency(%q<logging_assist>, [">= 0.1.6"])
172
181
  s.add_development_dependency(%q<rspec>, [">= 2.0.1"])
173
182
  s.add_development_dependency(%q<code-spec>, ["~> 0.2.9"])
174
183
  s.add_development_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
175
- s.add_runtime_dependency(%q<cancan>, ["~> 1.4.1"])
184
+ s.add_development_dependency(%q<rspec>, [">= 2.0.1"])
185
+ s.add_development_dependency(%q<code-spec>, ["~> 0.2.9"])
186
+ s.add_development_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
187
+ s.add_runtime_dependency(%q<cancan>, [">= 1.4.1"])
176
188
  s.add_runtime_dependency(%q<require_all>, ["~> 1.2.0"])
177
189
  s.add_runtime_dependency(%q<sugar-high>, ["~> 0.3.0"])
178
190
  s.add_runtime_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
@@ -181,10 +193,21 @@ Gem::Specification.new do |s|
181
193
  s.add_runtime_dependency(%q<activeresource>, [">= 3.0.1"])
182
194
  s.add_runtime_dependency(%q<logging_assist>, [">= 0.1.6"])
183
195
  else
196
+ s.add_dependency(%q<cancan>, [">= 1.4.1"])
197
+ s.add_dependency(%q<require_all>, ["~> 1.2.0"])
198
+ s.add_dependency(%q<sugar-high>, ["~> 0.3.0"])
199
+ s.add_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
200
+ s.add_dependency(%q<activemodel>, [">= 3.0.1"])
201
+ s.add_dependency(%q<activesupport>, [">= 3.0.1"])
202
+ s.add_dependency(%q<activeresource>, [">= 3.0.1"])
203
+ s.add_dependency(%q<logging_assist>, [">= 0.1.6"])
204
+ s.add_dependency(%q<rspec>, [">= 2.0.1"])
205
+ s.add_dependency(%q<code-spec>, ["~> 0.2.9"])
206
+ s.add_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
184
207
  s.add_dependency(%q<rspec>, [">= 2.0.1"])
185
208
  s.add_dependency(%q<code-spec>, ["~> 0.2.9"])
186
209
  s.add_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
187
- s.add_dependency(%q<cancan>, ["~> 1.4.1"])
210
+ s.add_dependency(%q<cancan>, [">= 1.4.1"])
188
211
  s.add_dependency(%q<require_all>, ["~> 1.2.0"])
189
212
  s.add_dependency(%q<sugar-high>, ["~> 0.3.0"])
190
213
  s.add_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
@@ -194,10 +217,21 @@ Gem::Specification.new do |s|
194
217
  s.add_dependency(%q<logging_assist>, [">= 0.1.6"])
195
218
  end
196
219
  else
220
+ s.add_dependency(%q<cancan>, [">= 1.4.1"])
221
+ s.add_dependency(%q<require_all>, ["~> 1.2.0"])
222
+ s.add_dependency(%q<sugar-high>, ["~> 0.3.0"])
223
+ s.add_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
224
+ s.add_dependency(%q<activemodel>, [">= 3.0.1"])
225
+ s.add_dependency(%q<activesupport>, [">= 3.0.1"])
226
+ s.add_dependency(%q<activeresource>, [">= 3.0.1"])
227
+ s.add_dependency(%q<logging_assist>, [">= 0.1.6"])
228
+ s.add_dependency(%q<rspec>, [">= 2.0.1"])
229
+ s.add_dependency(%q<code-spec>, ["~> 0.2.9"])
230
+ s.add_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
197
231
  s.add_dependency(%q<rspec>, [">= 2.0.1"])
198
232
  s.add_dependency(%q<code-spec>, ["~> 0.2.9"])
199
233
  s.add_dependency(%q<rails-app-spec>, ["~> 0.3.1"])
200
- s.add_dependency(%q<cancan>, ["~> 1.4.1"])
234
+ s.add_dependency(%q<cancan>, [">= 1.4.1"])
201
235
  s.add_dependency(%q<require_all>, ["~> 1.2.0"])
202
236
  s.add_dependency(%q<sugar-high>, ["~> 0.3.0"])
203
237
  s.add_dependency(%q<rails3_artifactor>, ["~> 0.3.1"])
@@ -66,16 +66,19 @@ module Permit
66
66
  @role_permissions = ::PermissionsLoader.load_permits options[:permits_file]
67
67
  end
68
68
 
69
- def permit?(user, options = {})
69
+ def permit?(user, options = {})
70
+ if options == :in_role
71
+ return true if !role_match? user
72
+ end
70
73
  false
71
74
  end
72
75
 
73
76
  def can(action, subject, conditions = nil, &block)
74
- can_definitions << CanCan::CanDefinition.new(true, action, subject, conditions, block)
77
+ can_definitions << rule_class.new(true, action, subject, conditions, block)
75
78
  end
76
79
 
77
80
  def cannot(action, subject, conditions = nil, &block)
78
- can_definitions << CanCan::CanDefinition.new(false, action, subject, conditions, block)
81
+ can_definitions << rule_class.new(false, action, subject, conditions, block)
79
82
  end
80
83
 
81
84
  def owns(user, clazz, ownership_relation = :user_id, user_id_attribute = :id, strategy_used = nil)
@@ -102,6 +105,12 @@ module Permit
102
105
  end
103
106
 
104
107
  protected
108
+
109
+ # CanCan 1.5 compatibility
110
+ def rule_class
111
+ return CanCan::Rule if defined? CanCan::Rule
112
+ CanCan::CanDefinition
113
+ end
105
114
 
106
115
  include Permit::Util
107
116
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 7
9
- version: 0.3.7
8
+ - 8
9
+ version: 0.3.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup
@@ -14,13 +14,132 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-24 00:00:00 +01:00
17
+ date: 2011-01-09 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: rspec
22
- prerelease: false
21
+ name: cancan
23
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 4
30
+ - 1
31
+ version: 1.4.1
32
+ type: :runtime
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: require_all
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 2
45
+ - 0
46
+ version: 1.2.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: sugar-high
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
59
+ - 3
60
+ - 0
61
+ version: 0.3.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rails3_artifactor
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
74
+ - 3
75
+ - 1
76
+ version: 0.3.1
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: activemodel
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ segments:
88
+ - 3
89
+ - 0
90
+ - 1
91
+ version: 3.0.1
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: activesupport
97
+ requirement: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ segments:
103
+ - 3
104
+ - 0
105
+ - 1
106
+ version: 3.0.1
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: activeresource
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ segments:
118
+ - 3
119
+ - 0
120
+ - 1
121
+ version: 3.0.1
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: *id007
125
+ - !ruby/object:Gem::Dependency
126
+ name: logging_assist
127
+ requirement: &id008 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ segments:
133
+ - 0
134
+ - 1
135
+ - 6
136
+ version: 0.1.6
137
+ type: :runtime
138
+ prerelease: false
139
+ version_requirements: *id008
140
+ - !ruby/object:Gem::Dependency
141
+ name: rspec
142
+ requirement: &id009 !ruby/object:Gem::Requirement
24
143
  none: false
25
144
  requirements:
26
145
  - - ">="
@@ -31,11 +150,11 @@ dependencies:
31
150
  - 1
32
151
  version: 2.0.1
33
152
  type: :development
34
- version_requirements: *id001
153
+ prerelease: false
154
+ version_requirements: *id009
35
155
  - !ruby/object:Gem::Dependency
36
156
  name: code-spec
37
- prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
157
+ requirement: &id010 !ruby/object:Gem::Requirement
39
158
  none: false
40
159
  requirements:
41
160
  - - ~>
@@ -46,11 +165,11 @@ dependencies:
46
165
  - 9
47
166
  version: 0.2.9
48
167
  type: :development
49
- version_requirements: *id002
168
+ prerelease: false
169
+ version_requirements: *id010
50
170
  - !ruby/object:Gem::Dependency
51
171
  name: rails-app-spec
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
172
+ requirement: &id011 !ruby/object:Gem::Requirement
54
173
  none: false
55
174
  requirements:
56
175
  - - ~>
@@ -61,14 +180,59 @@ dependencies:
61
180
  - 1
62
181
  version: 0.3.1
63
182
  type: :development
64
- version_requirements: *id003
183
+ prerelease: false
184
+ version_requirements: *id011
65
185
  - !ruby/object:Gem::Dependency
66
- name: cancan
186
+ name: rspec
187
+ requirement: &id012 !ruby/object:Gem::Requirement
188
+ none: false
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ segments:
193
+ - 2
194
+ - 0
195
+ - 1
196
+ version: 2.0.1
197
+ type: :development
67
198
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
199
+ version_requirements: *id012
200
+ - !ruby/object:Gem::Dependency
201
+ name: code-spec
202
+ requirement: &id013 !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ~>
206
+ - !ruby/object:Gem::Version
207
+ segments:
208
+ - 0
209
+ - 2
210
+ - 9
211
+ version: 0.2.9
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: *id013
215
+ - !ruby/object:Gem::Dependency
216
+ name: rails-app-spec
217
+ requirement: &id014 !ruby/object:Gem::Requirement
69
218
  none: false
70
219
  requirements:
71
220
  - - ~>
221
+ - !ruby/object:Gem::Version
222
+ segments:
223
+ - 0
224
+ - 3
225
+ - 1
226
+ version: 0.3.1
227
+ type: :development
228
+ prerelease: false
229
+ version_requirements: *id014
230
+ - !ruby/object:Gem::Dependency
231
+ name: cancan
232
+ requirement: &id015 !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ">="
72
236
  - !ruby/object:Gem::Version
73
237
  segments:
74
238
  - 1
@@ -76,11 +240,11 @@ dependencies:
76
240
  - 1
77
241
  version: 1.4.1
78
242
  type: :runtime
79
- version_requirements: *id004
243
+ prerelease: false
244
+ version_requirements: *id015
80
245
  - !ruby/object:Gem::Dependency
81
246
  name: require_all
82
- prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
247
+ requirement: &id016 !ruby/object:Gem::Requirement
84
248
  none: false
85
249
  requirements:
86
250
  - - ~>
@@ -91,11 +255,11 @@ dependencies:
91
255
  - 0
92
256
  version: 1.2.0
93
257
  type: :runtime
94
- version_requirements: *id005
258
+ prerelease: false
259
+ version_requirements: *id016
95
260
  - !ruby/object:Gem::Dependency
96
261
  name: sugar-high
97
- prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
262
+ requirement: &id017 !ruby/object:Gem::Requirement
99
263
  none: false
100
264
  requirements:
101
265
  - - ~>
@@ -106,11 +270,11 @@ dependencies:
106
270
  - 0
107
271
  version: 0.3.0
108
272
  type: :runtime
109
- version_requirements: *id006
273
+ prerelease: false
274
+ version_requirements: *id017
110
275
  - !ruby/object:Gem::Dependency
111
276
  name: rails3_artifactor
112
- prerelease: false
113
- requirement: &id007 !ruby/object:Gem::Requirement
277
+ requirement: &id018 !ruby/object:Gem::Requirement
114
278
  none: false
115
279
  requirements:
116
280
  - - ~>
@@ -121,11 +285,11 @@ dependencies:
121
285
  - 1
122
286
  version: 0.3.1
123
287
  type: :runtime
124
- version_requirements: *id007
288
+ prerelease: false
289
+ version_requirements: *id018
125
290
  - !ruby/object:Gem::Dependency
126
291
  name: activemodel
127
- prerelease: false
128
- requirement: &id008 !ruby/object:Gem::Requirement
292
+ requirement: &id019 !ruby/object:Gem::Requirement
129
293
  none: false
130
294
  requirements:
131
295
  - - ">="
@@ -136,11 +300,11 @@ dependencies:
136
300
  - 1
137
301
  version: 3.0.1
138
302
  type: :runtime
139
- version_requirements: *id008
303
+ prerelease: false
304
+ version_requirements: *id019
140
305
  - !ruby/object:Gem::Dependency
141
306
  name: activesupport
142
- prerelease: false
143
- requirement: &id009 !ruby/object:Gem::Requirement
307
+ requirement: &id020 !ruby/object:Gem::Requirement
144
308
  none: false
145
309
  requirements:
146
310
  - - ">="
@@ -151,11 +315,11 @@ dependencies:
151
315
  - 1
152
316
  version: 3.0.1
153
317
  type: :runtime
154
- version_requirements: *id009
318
+ prerelease: false
319
+ version_requirements: *id020
155
320
  - !ruby/object:Gem::Dependency
156
321
  name: activeresource
157
- prerelease: false
158
- requirement: &id010 !ruby/object:Gem::Requirement
322
+ requirement: &id021 !ruby/object:Gem::Requirement
159
323
  none: false
160
324
  requirements:
161
325
  - - ">="
@@ -166,11 +330,11 @@ dependencies:
166
330
  - 1
167
331
  version: 3.0.1
168
332
  type: :runtime
169
- version_requirements: *id010
333
+ prerelease: false
334
+ version_requirements: *id021
170
335
  - !ruby/object:Gem::Dependency
171
336
  name: logging_assist
172
- prerelease: false
173
- requirement: &id011 !ruby/object:Gem::Requirement
337
+ requirement: &id022 !ruby/object:Gem::Requirement
174
338
  none: false
175
339
  requirements:
176
340
  - - ">="
@@ -181,7 +345,8 @@ dependencies:
181
345
  - 6
182
346
  version: 0.1.6
183
347
  type: :runtime
184
- version_requirements: *id011
348
+ prerelease: false
349
+ version_requirements: *id022
185
350
  description: Role specific Permits for use with CanCan permission system
186
351
  email: kmandrup@gmail.com
187
352
  executables: []
@@ -195,6 +360,7 @@ files:
195
360
  - .document
196
361
  - .rspec
197
362
  - Changelog.txt
363
+ - Gemfile
198
364
  - LICENSE
199
365
  - README.markdown
200
366
  - Rakefile