roles 0.1.0 → 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.
- checksums.yaml +7 -0
- data/.travis.yml +1 -2
- data/CHANGELOG.md +3 -0
- data/README.md +24 -13
- data/lib/roles.rb +14 -5
- data/lib/roles/resource.rb +4 -4
- data/lib/roles/role.rb +18 -18
- data/lib/roles/version.rb +1 -1
- data/roles.gemspec +3 -3
- data/spec/generators/roles/role/role_generator_spec.rb +10 -10
- data/spec/roles/resource_spec.rb +5 -5
- data/spec/roles/role_spec.rb +7 -4
- metadata +31 -41
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4136c2d08ee83ba38a925530bb53e1293c62286a
|
4
|
+
data.tar.gz: 21b7840b3397699f47f3d2d1a636cb80d90c9454
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9be9cc510a899bdd4778502549fd6b8373421db651cb3a0315e42e4d10d3634ee61d3c3980b24482ebf62523ed9a24bda72e58cce526f2a975ae9e97340a688b
|
7
|
+
data.tar.gz: 313b31799ac5691912c62c22966393866705c632c75c10518c75f696f5fdb63b8008542cc5aa77d7ed0fe240df07a2fb15e5ac6d65e4951e8a7445a77af950ba
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Roles
|
1
|
+
# Roles [](https://travis-ci.org/liufengyun/roles)
|
2
2
|
|
3
3
|
Roles is an extremely simple roles gem inspired by [rolify](https://github.com/EppO/rolify).
|
4
4
|
|
@@ -48,18 +48,17 @@ user.resources_with_role(Project, role_name = nil)
|
|
48
48
|
# => returns all projects for a given user, optionally filtered by role_name.
|
49
49
|
```
|
50
50
|
|
51
|
-
##
|
51
|
+
## Compatibility
|
52
52
|
|
53
|
-
* Rails >= 3.1
|
54
|
-
*
|
55
|
-
* supports ruby 1.9
|
53
|
+
* Rails >= 3.1 and < 4.0 (plan to support 4.0 later)
|
54
|
+
* supports ruby 1.9 and 2.0
|
56
55
|
|
57
56
|
## Installation
|
58
57
|
|
59
58
|
Add this to your Gemfile and run the +bundle+ command.
|
60
59
|
|
61
60
|
```ruby
|
62
|
-
|
61
|
+
gem "roles"
|
63
62
|
```
|
64
63
|
|
65
64
|
## Getting Started
|
@@ -69,25 +68,31 @@ Add this to your Gemfile and run the +bundle+ command.
|
|
69
68
|
First, create your Role model and migration file using this generator:
|
70
69
|
|
71
70
|
```
|
72
|
-
|
71
|
+
rails g roles:role
|
73
72
|
```
|
74
73
|
|
75
|
-
Role and
|
74
|
+
The command will create a `Role` model and create migrations. Also it will add `rolify` to `User` class.
|
75
|
+
|
76
|
+
If you want to use a different name for role and user class, you can specify them as following:
|
77
|
+
|
78
|
+
```
|
79
|
+
rails g roles:role MyRole MyUser
|
80
|
+
```
|
76
81
|
|
77
82
|
### 2. Run the migration
|
78
83
|
|
79
84
|
```
|
80
|
-
|
85
|
+
rake db:migrate
|
81
86
|
```
|
82
87
|
|
83
88
|
### 3.1 Configure your user model
|
84
89
|
|
85
|
-
This
|
90
|
+
This generator automaticaly adds the `rolify` method to your User class.
|
86
91
|
|
87
92
|
```ruby
|
88
|
-
|
89
|
-
|
90
|
-
|
93
|
+
class User < ActiveRecord::Base
|
94
|
+
rolify
|
95
|
+
end
|
91
96
|
```
|
92
97
|
|
93
98
|
### 3.2 Configure your resource models
|
@@ -101,6 +106,12 @@ class Forum < ActiveRecord::Base
|
|
101
106
|
end
|
102
107
|
```
|
103
108
|
|
109
|
+
If you use a different role or user class name than the default `Role` and `User`, you have to specify them as options to the `resourcify` method as following:
|
110
|
+
|
111
|
+
``` ruby
|
112
|
+
resourcify role_cname: 'MyRole', user_cname: 'MyUser'
|
113
|
+
```
|
114
|
+
|
104
115
|
## Resources
|
105
116
|
|
106
117
|
* [Rolify](https://github.com/EppO/rolify)
|
data/lib/roles.rb
CHANGED
@@ -15,10 +15,10 @@ module Roles
|
|
15
15
|
roles_options = { :class_name => options[:role_cname].camelize, :dependent => :destroy }
|
16
16
|
roles_options.merge!(options.select{ |k,v| [:before_add, :after_add, :before_remove, :after_remove].include? k.to_sym })
|
17
17
|
|
18
|
-
has_many :roles, roles_options
|
19
|
-
|
20
18
|
self.role_cname = options[:role_cname]
|
21
19
|
self.user_cname = options[:user_cname]
|
20
|
+
|
21
|
+
has_many self.role_table.to_sym, roles_options
|
22
22
|
end
|
23
23
|
|
24
24
|
def resourcify(options = {})
|
@@ -26,17 +26,26 @@ module Roles
|
|
26
26
|
|
27
27
|
options.reverse_merge!({ :role_cname => 'Role', :dependent => :destroy, :user_cname => 'User' })
|
28
28
|
resourcify_options = { :class_name => options[:role_cname].camelize, :as => :resource, :dependent => options[:dependent] }
|
29
|
-
has_many :roles, resourcify_options
|
30
29
|
|
31
30
|
self.role_cname = options[:role_cname]
|
32
31
|
self.user_cname = options[:user_cname]
|
32
|
+
|
33
|
+
has_many self.role_table.to_sym, resourcify_options
|
34
|
+
end
|
35
|
+
|
36
|
+
def user_table
|
37
|
+
@user_table ||= self.user_table.tableize
|
38
|
+
end
|
39
|
+
|
40
|
+
def role_table
|
41
|
+
@role_table ||= self.role_cname.tableize
|
33
42
|
end
|
34
43
|
|
35
44
|
def user_class
|
36
|
-
self.user_cname.constantize
|
45
|
+
@user_class ||= self.user_cname.constantize
|
37
46
|
end
|
38
47
|
|
39
48
|
def role_class
|
40
|
-
self.role_cname.constantize
|
49
|
+
@role_class ||= self.role_cname.constantize
|
41
50
|
end
|
42
51
|
end
|
data/lib/roles/resource.rb
CHANGED
@@ -7,18 +7,18 @@ module Roles
|
|
7
7
|
module ClassMethods
|
8
8
|
def users_with_role(role_name = nil)
|
9
9
|
if role_name.nil?
|
10
|
-
self.user_class.includes(
|
10
|
+
self.user_class.includes(role_table).where("#{role_table}.resource_type LIKE '%s'", self.to_s).where("#{role_table}.resource_id IS NULL")
|
11
11
|
else
|
12
|
-
self.user_class.includes(
|
12
|
+
self.user_class.includes(role_table).where("#{role_table}.resource_type LIKE '%s'", self.to_s).where("#{role_table}.resource_id IS NULL").where("#{role_table}.name LIKE '%s'", role_name.to_s)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
def users_with_role(role_name = nil)
|
18
18
|
if role_name.nil?
|
19
|
-
self.class.user_class.includes(
|
19
|
+
self.class.user_class.includes(self.class.role_table).where("#{self.class.role_table}.resource_type LIKE '%s'", self.class.to_s).where("#{self.class.role_table}.resource_id = %s", self.id)
|
20
20
|
else
|
21
|
-
self.class.user_class.includes(
|
21
|
+
self.class.user_class.includes(self.class.role_table).where("#{self.class.role_table}.resource_type LIKE '%s'", self.class.to_s).where("#{self.class.role_table}.resource_id = %s", self.id).where("#{self.class.role_table}.name LIKE '%s'", role_name.to_s)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
data/lib/roles/role.rb
CHANGED
@@ -7,47 +7,47 @@ module Roles
|
|
7
7
|
module ClassMethods
|
8
8
|
def with_role(role_name, resource = nil)
|
9
9
|
if resource.nil?
|
10
|
-
self.includes(
|
10
|
+
self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type IS NULL").where("#{role_table}.resource_id IS NULL")
|
11
11
|
elsif resource.is_a? Class
|
12
|
-
self.includes(
|
12
|
+
self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.to_s).where("#{role_table}.resource_id IS NULL")
|
13
13
|
else
|
14
|
-
self.includes(
|
14
|
+
self.includes(role_table).where("#{role_table}.name LIKE '%s'", role_name.to_s).where("#{role_table}.resource_type LIKE '%s'", resource.class.to_s).where("#{role_table}.resource_id = %s", resource.id)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def add_role(role_name, resource = nil)
|
20
20
|
if resource.nil?
|
21
|
-
self.
|
21
|
+
self.send(self.class.role_table).where(:resource_type => nil).where(:resource_id => nil).where(:name => role_name.to_s).first_or_create
|
22
22
|
elsif resource.is_a? Class
|
23
|
-
self.
|
23
|
+
self.send(self.class.role_table).where(:resource_type => resource.to_s).where(:resource_id => nil).where(:name => role_name.to_s).first_or_create
|
24
24
|
else
|
25
|
-
self.
|
25
|
+
self.send(self.class.role_table).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).where(:name => role_name.to_s).first_or_create
|
26
26
|
end
|
27
27
|
end
|
28
28
|
alias_method :grant, :add_role
|
29
29
|
|
30
30
|
def has_role?(role_name, resource = nil)
|
31
31
|
if new_record?
|
32
|
-
self.
|
32
|
+
self.send(self.class.role_table).detect { |r| r.name == role_name.to_s && (r.resource == resource || resource.nil?) }.present?
|
33
33
|
else
|
34
34
|
if resource.nil?
|
35
|
-
self.
|
35
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => nil).where(:resource_id => nil).size > 0
|
36
36
|
elsif resource.is_a? Class
|
37
|
-
self.
|
37
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => resource.to_s).where(:resource_id => nil).size > 0
|
38
38
|
else
|
39
|
-
self.
|
39
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).size > 0
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
def remove_role(role_name, resource = nil)
|
45
45
|
if resource.nil?
|
46
|
-
self.
|
46
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => nil).where(:resource_id => nil).destroy_all
|
47
47
|
elsif resource.is_a? Class
|
48
|
-
self.
|
48
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => resource.to_s).where(:resource_id => nil).destroy_all
|
49
49
|
else
|
50
|
-
self.
|
50
|
+
self.send(self.class.role_table).where(:name => role_name.to_s).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).destroy_all
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -55,19 +55,19 @@ module Roles
|
|
55
55
|
|
56
56
|
def role_names(resource = nil)
|
57
57
|
if resource.nil?
|
58
|
-
self.
|
58
|
+
self.send(self.class.role_table).where(:resource_type => nil).where(:resource_id => nil).select(:name).map { |r| r.name }
|
59
59
|
elsif resource.is_a? Class
|
60
|
-
self.
|
60
|
+
self.send(self.class.role_table).where(:resource_type => resource.name).where(:resource_id => nil).select(:name).map { |r| r.name }
|
61
61
|
else
|
62
|
-
self.
|
62
|
+
self.send(self.class.role_table).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).select(:name).map { |r| r.name }
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
66
|
def resources_with_role(resource_class, role_name = nil)
|
67
67
|
if role_name.nil?
|
68
|
-
resource_class.includes(
|
68
|
+
resource_class.includes(self.class.role_table).where("#{self.class.role_table}.#{self.class.user_cname.underscore.singularize}_id = %s", self.id).where("#{self.class.role_table}.resource_type LIKE '%s'", resource_class.to_s)
|
69
69
|
else
|
70
|
-
resource_class.includes(
|
70
|
+
resource_class.includes(self.class.role_table).where("#{self.class.role_table}.#{self.class.user_cname.underscore.singularize}_id = %s", self.id).where("#{self.class.role_table}.resource_type LIKE '%s'", resource_class.to_s).where("#{self.class.role_table}.name LIKE '%s'", role_name.to_s)
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
data/lib/roles/version.rb
CHANGED
data/roles.gemspec
CHANGED
@@ -24,10 +24,10 @@ Gem::Specification.new do |s|
|
|
24
24
|
else
|
25
25
|
s.add_development_dependency "sqlite3"
|
26
26
|
end
|
27
|
-
s.add_development_dependency "activerecord", ">= 3.1.0"
|
27
|
+
s.add_development_dependency "activerecord", ">= 3.1.0", "< 4.0.0"
|
28
28
|
s.add_development_dependency "ammeter"
|
29
29
|
s.add_development_dependency "rake"
|
30
|
-
s.add_development_dependency "rspec", ">= 2.
|
31
|
-
s.add_development_dependency "rspec-rails", "
|
30
|
+
s.add_development_dependency "rspec", ">= 2.2"
|
31
|
+
s.add_development_dependency "rspec-rails", "= 2.10"
|
32
32
|
s.add_development_dependency "bundler"
|
33
33
|
end
|
@@ -7,11 +7,11 @@ describe Roles::Generators::RoleGenerator do
|
|
7
7
|
# Tell the generator where to put its output (what it thinks of as Rails.root)
|
8
8
|
destination File.expand_path("../../../../../tmp", __FILE__)
|
9
9
|
teardown :cleanup_destination_root
|
10
|
-
|
10
|
+
|
11
11
|
before {
|
12
12
|
prepare_destination
|
13
13
|
}
|
14
|
-
|
14
|
+
|
15
15
|
def cleanup_destination_root
|
16
16
|
FileUtils.rm_rf destination_root
|
17
17
|
end
|
@@ -27,7 +27,7 @@ describe Roles::Generators::RoleGenerator do
|
|
27
27
|
}
|
28
28
|
run_generator
|
29
29
|
}
|
30
|
-
|
30
|
+
|
31
31
|
describe 'app/models/role.rb' do
|
32
32
|
subject { file('app/models/role.rb') }
|
33
33
|
it { should exist }
|
@@ -36,12 +36,12 @@ describe Roles::Generators::RoleGenerator do
|
|
36
36
|
it { should contain "belongs_to :resource, :polymorphic => true" }
|
37
37
|
it { should contain "validates_uniqueness_of :name, :scope => [:user_id, :resource_type, :resource_id]" }
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
describe 'app/models/user.rb' do
|
41
41
|
subject { file('app/models/user.rb') }
|
42
42
|
it { should contain /class User < ActiveRecord::Base\n rolify\n/ }
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
describe 'migration file' do
|
46
46
|
subject { migration_file('db/migrate/roles_create_roles.rb') }
|
47
47
|
|
@@ -52,7 +52,7 @@ describe Roles::Generators::RoleGenerator do
|
|
52
52
|
|
53
53
|
describe 'specifying user and role names' do
|
54
54
|
before(:all) { arguments %w(AdminRole AdminUser) }
|
55
|
-
|
55
|
+
|
56
56
|
before {
|
57
57
|
capture(:stdout) {
|
58
58
|
generator.create_file "app/models/admin_user.rb" do
|
@@ -61,23 +61,23 @@ describe Roles::Generators::RoleGenerator do
|
|
61
61
|
}
|
62
62
|
run_generator
|
63
63
|
}
|
64
|
-
|
64
|
+
|
65
65
|
describe 'app/models/rank.rb' do
|
66
66
|
subject { file('app/models/admin_role.rb') }
|
67
|
-
|
67
|
+
|
68
68
|
it { should exist }
|
69
69
|
it { should contain "class AdminRole < ActiveRecord::Base" }
|
70
70
|
it { should contain "belongs_to :admin_user" }
|
71
71
|
it { should contain "belongs_to :resource, :polymorphic => true" }
|
72
72
|
it { should contain "validates_uniqueness_of :name, :scope => [:admin_user_id, :resource_type, :resource_id]" }
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
describe 'app/models/admin_user.rb' do
|
76
76
|
subject { file('app/models/admin_user.rb') }
|
77
77
|
|
78
78
|
it { should contain /class AdminUser < ActiveRecord::Base\n rolify :role_cname => 'AdminRole'\n/ }
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
describe 'migration file' do
|
82
82
|
subject { migration_file('db/migrate/roles_create_admin_roles.rb') }
|
83
83
|
|
data/spec/roles/resource_spec.rb
CHANGED
@@ -2,9 +2,9 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe Roles::Resource do
|
4
4
|
before do
|
5
|
-
User.rolify
|
6
|
-
Forum.resourcify
|
7
|
-
Group.resourcify
|
5
|
+
User.rolify
|
6
|
+
Forum.resourcify
|
7
|
+
Group.resourcify
|
8
8
|
reset_data
|
9
9
|
end
|
10
10
|
|
@@ -43,12 +43,12 @@ describe Roles::Resource do
|
|
43
43
|
subject do
|
44
44
|
Group.create(:name => "to delete")
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
before do
|
48
48
|
subject.roles.create :name => "group_role1", :user => admin
|
49
49
|
subject.roles.create :name => "group_role2", :user => tourist
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
it "should remove the roles binded to this instance" do
|
53
53
|
expect { subject.destroy }.to change { Role.count }.by(-2)
|
54
54
|
end
|
data/spec/roles/role_spec.rb
CHANGED
@@ -2,9 +2,9 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
describe Roles::Role do
|
4
4
|
before do
|
5
|
-
User.rolify
|
6
|
-
Forum.resourcify
|
7
|
-
Group.resourcify
|
5
|
+
User.rolify
|
6
|
+
Forum.resourcify
|
7
|
+
Group.resourcify
|
8
8
|
reset_data
|
9
9
|
|
10
10
|
@admin = User.first
|
@@ -46,14 +46,17 @@ describe Roles::Role do
|
|
46
46
|
@admin.add_role :moderator
|
47
47
|
@admin.add_role :moderator
|
48
48
|
@admin.role_names.should == ["moderator"]
|
49
|
+
Role.where(:name => :moderator).where(:user_id => @admin.id).count.should == 1
|
49
50
|
|
50
51
|
@admin.add_role :moderator, Forum
|
51
52
|
@admin.add_role :moderator, Forum
|
52
53
|
@admin.role_names(Forum).should == ["moderator"]
|
54
|
+
Role.where(:name => :moderator).where(:resource_type => :Forum).where(:resource_id => nil).where(:user_id => @admin.id).count.should == 1
|
53
55
|
|
54
56
|
@admin.add_role :moderator, Forum.first
|
55
57
|
@admin.add_role :moderator, Forum.first
|
56
58
|
@admin.role_names(Forum.first).should == ["moderator"]
|
59
|
+
Role.where(:name => :moderator).where(:resource_type => :Forum).where(:resource_id => Forum.first.id).where(:user_id => @admin.id).count.should == 1
|
57
60
|
end
|
58
61
|
|
59
62
|
it "should be use grant instead of add_role" do
|
@@ -165,7 +168,7 @@ describe Roles::Role do
|
|
165
168
|
@admin.roles.create :name => "moderator", :resource_type => "Forum"
|
166
169
|
@admin.roles.create :name => "admin", :resource => Forum.first
|
167
170
|
end
|
168
|
-
|
171
|
+
|
169
172
|
it "should remove the roles binded to this instance" do
|
170
173
|
expect { @admin.destroy }.to change { Role.count }.by(-3)
|
171
174
|
end
|
metadata
CHANGED
@@ -1,126 +1,117 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- liufengyun
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-08-13 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: sqlite3
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: activerecord
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: 3.1.0
|
34
|
+
- - <
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 4.0.0
|
38
37
|
type: :development
|
39
38
|
prerelease: false
|
40
39
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
40
|
requirements:
|
43
|
-
- -
|
41
|
+
- - '>='
|
44
42
|
- !ruby/object:Gem::Version
|
45
43
|
version: 3.1.0
|
44
|
+
- - <
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 4.0.0
|
46
47
|
- !ruby/object:Gem::Dependency
|
47
48
|
name: ammeter
|
48
49
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
57
|
requirements:
|
59
|
-
- -
|
58
|
+
- - '>='
|
60
59
|
- !ruby/object:Gem::Version
|
61
60
|
version: '0'
|
62
61
|
- !ruby/object:Gem::Dependency
|
63
62
|
name: rake
|
64
63
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
64
|
requirements:
|
67
|
-
- -
|
65
|
+
- - '>='
|
68
66
|
- !ruby/object:Gem::Version
|
69
67
|
version: '0'
|
70
68
|
type: :development
|
71
69
|
prerelease: false
|
72
70
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
71
|
requirements:
|
75
|
-
- -
|
72
|
+
- - '>='
|
76
73
|
- !ruby/object:Gem::Version
|
77
74
|
version: '0'
|
78
75
|
- !ruby/object:Gem::Dependency
|
79
76
|
name: rspec
|
80
77
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
78
|
requirements:
|
83
|
-
- -
|
79
|
+
- - '>='
|
84
80
|
- !ruby/object:Gem::Version
|
85
|
-
version: '2.
|
81
|
+
version: '2.2'
|
86
82
|
type: :development
|
87
83
|
prerelease: false
|
88
84
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
85
|
requirements:
|
91
|
-
- -
|
86
|
+
- - '>='
|
92
87
|
- !ruby/object:Gem::Version
|
93
|
-
version: '2.
|
88
|
+
version: '2.2'
|
94
89
|
- !ruby/object:Gem::Dependency
|
95
90
|
name: rspec-rails
|
96
91
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
92
|
requirements:
|
99
|
-
- -
|
93
|
+
- - '='
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: '2.
|
95
|
+
version: '2.10'
|
102
96
|
type: :development
|
103
97
|
prerelease: false
|
104
98
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
99
|
requirements:
|
107
|
-
- -
|
100
|
+
- - '='
|
108
101
|
- !ruby/object:Gem::Version
|
109
|
-
version: '2.
|
102
|
+
version: '2.10'
|
110
103
|
- !ruby/object:Gem::Dependency
|
111
104
|
name: bundler
|
112
105
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
106
|
requirements:
|
115
|
-
- -
|
107
|
+
- - '>='
|
116
108
|
- !ruby/object:Gem::Version
|
117
109
|
version: '0'
|
118
110
|
type: :development
|
119
111
|
prerelease: false
|
120
112
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
113
|
requirements:
|
123
|
-
- -
|
114
|
+
- - '>='
|
124
115
|
- !ruby/object:Gem::Version
|
125
116
|
version: '0'
|
126
117
|
description: An extremely simple roles library inspired by rolify
|
@@ -157,27 +148,26 @@ files:
|
|
157
148
|
- spec/support/schema.rb
|
158
149
|
homepage: http://github.com/liufengyun/roles
|
159
150
|
licenses: []
|
151
|
+
metadata: {}
|
160
152
|
post_install_message:
|
161
153
|
rdoc_options: []
|
162
154
|
require_paths:
|
163
155
|
- lib
|
164
156
|
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
157
|
requirements:
|
167
|
-
- -
|
158
|
+
- - '>='
|
168
159
|
- !ruby/object:Gem::Version
|
169
160
|
version: '0'
|
170
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
162
|
requirements:
|
173
|
-
- -
|
163
|
+
- - '>='
|
174
164
|
- !ruby/object:Gem::Version
|
175
165
|
version: '0'
|
176
166
|
requirements: []
|
177
167
|
rubyforge_project: roles
|
178
|
-
rubygems_version:
|
168
|
+
rubygems_version: 2.0.3
|
179
169
|
signing_key:
|
180
|
-
specification_version:
|
170
|
+
specification_version: 4
|
181
171
|
summary: Roles library with resource scoping
|
182
172
|
test_files:
|
183
173
|
- spec/generators/roles/role/role_generator_spec.rb
|