roles 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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