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 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
@@ -1,12 +1,11 @@
1
1
  rvm:
2
2
  - 1.9.3
3
- - ruby-head
4
3
  - rbx-19mode
5
4
  - jruby-19mode
5
+ - 2.0.0
6
6
 
7
7
  env:
8
8
  - ADAPTER=active_record
9
- - ADAPTER=mongoid
10
9
 
11
10
  before_install:
12
11
  - gem update --system
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v0.2.0 (Aug 13, 2013)
2
+ - support custom role and user class name
3
+
1
4
  ## v0.1.0 (Sep 2, 2012)
2
5
  - add spec test set
3
6
  - fix duplicate records in `resources#users_with_role`, `users#resources_with_role` and `users#with_role`
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Roles
1
+ # Roles [![Build Status](https://travis-ci.org/liufengyun/roles.png?branch=master)](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
- ## Requirements
51
+ ## Compatibility
52
52
 
53
- * Rails >= 3.1
54
- * ActiveRecord >= 3.1
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
- gem "roles"
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
- rails g roles:role Role User
71
+ rails g roles:role
73
72
  ```
74
73
 
75
- Role and User classes are the default.
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
- rake db:migrate
85
+ rake db:migrate
81
86
  ```
82
87
 
83
88
  ### 3.1 Configure your user model
84
89
 
85
- This gem adds the `rolify` method to your User class.
90
+ This generator automaticaly adds the `rolify` method to your User class.
86
91
 
87
92
  ```ruby
88
- class User < ActiveRecord::Base
89
- rolify
90
- end
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
@@ -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(:roles).where("roles.resource_type LIKE '%s'", self.to_s).where("roles.resource_id IS NULL")
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(:roles).where("roles.resource_type LIKE '%s'", self.to_s).where("roles.resource_id IS NULL").where("roles.name LIKE '%s'", role_name.to_s)
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(:roles).where("roles.resource_type LIKE '%s'", self.class.to_s).where("roles.resource_id = %s", self.id)
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(:roles).where("roles.resource_type LIKE '%s'", self.class.to_s).where("roles.resource_id = %s", self.id).where("roles.name LIKE '%s'", role_name.to_s)
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(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type IS NULL").where("roles.resource_id IS NULL")
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(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type LIKE '%s'", resource.to_s).where("roles.resource_id IS NULL")
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(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type LIKE '%s'", resource.class.to_s).where("roles.resource_id = %s", resource.id)
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.roles.where(:resource_type => nil).where(:resource_id => nil).find_or_create_by_name(:name => role_name.to_s)
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.roles.where(:resource_type => resource.to_s).where(:resource_id => nil).find_or_create_by_name(:name => role_name.to_s)
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.roles.where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).find_or_create_by_name(:name => role_name.to_s)
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.roles.detect { |r| r.name == role_name.to_s && (r.resource == resource || resource.nil?) }.present?
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.roles.where(:name => role_name.to_s).where(:resource_type => nil).where(:resource_id => nil).size > 0
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.roles.where(:name => role_name.to_s).where(:resource_type => resource.to_s).where(:resource_id => nil).size > 0
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.roles.where(:name => role_name.to_s).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).size > 0
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.roles.where(:name => role_name.to_s).where(:resource_type => nil).where(:resource_id => nil).destroy_all
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.roles.where(:name => role_name.to_s).where(:resource_type => resource.to_s).where(:resource_id => nil).destroy_all
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.roles.where(:name => role_name.to_s).where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).destroy_all
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.roles.where(:resource_type => nil).where(:resource_id => nil).select(:name).map { |r| r.name }
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.roles.where(:resource_type => resource.name).where(:resource_id => nil).select(:name).map { |r| r.name }
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.roles.where(:resource_type => resource.class.to_s).where(:resource_id => resource.id).select(:name).map { |r| r.name }
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(:roles).where("roles.#{self.class.user_cname.underscore.singularize}_id = %s", self.id).where("roles.resource_type LIKE '%s'", resource_class.to_s)
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(:roles).where("roles.#{self.class.user_cname.underscore.singularize}_id = %s", self.id).where("roles.resource_type LIKE '%s'", resource_class.to_s).where("roles.name LIKE '%s'", role_name.to_s)
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
@@ -1,3 +1,3 @@
1
1
  module Roles
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
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.0"
31
- s.add_development_dependency "rspec-rails", ">= 2.0"
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
 
@@ -2,9 +2,9 @@ require "spec_helper"
2
2
 
3
3
  describe Roles::Resource do
4
4
  before do
5
- User.rolify :role_cname => "Role"
6
- Forum.resourcify :role_cname => "Role"
7
- Group.resourcify :role_cname => "Role"
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
@@ -2,9 +2,9 @@ require "spec_helper"
2
2
 
3
3
  describe Roles::Role do
4
4
  before do
5
- User.rolify :role_cname => "Role"
6
- Forum.resourcify :role_cname => "Role"
7
- Group.resourcify :role_cname => "Role"
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.1.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: 2012-09-02 00:00:00.000000000 Z
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.0'
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.0'
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.0'
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.0'
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: 1.8.24
168
+ rubygems_version: 2.0.3
179
169
  signing_key:
180
- specification_version: 3
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