roles 0.0.5 → 0.1.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.
data/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ ## v0.1.0 (Sep 2, 2012)
2
+ - add spec test set
3
+ - fix duplicate records in `resources#users_with_role`, `users#resources_with_role` and `users#with_role`
4
+ - fix roles records not destroyed when user destroyed
5
+
6
+ ## v0.0.5 (Aug 23, 2012)
7
+ - fix user_cname nil problem in User class
8
+
9
+ ## v0.0.4 (Aug 23, 2012)
10
+ - fix method name error(roles -> rolify)
11
+
12
+ ## v0.0.3 (Aug 23, 2012)
13
+ - fix generator error
14
+
15
+ ## v0.0.2 (Aug 19, 2012)
16
+ - rename `user.resources` to `user.resources_with_role`
17
+
18
+ ## v0.0.1 (Aug 17, 2012)
19
+ - first release
@@ -2,4 +2,5 @@ class <%= role_cname.camelize %> < ActiveRecord::Base
2
2
  belongs_to :<%= user_cname.tableize.singularize %>
3
3
  belongs_to :resource, :polymorphic => true
4
4
 
5
+ validates_uniqueness_of :name, :scope => [:<%= user_cname.underscore.singularize %>_id, :resource_type, :resource_id]
5
6
  end
data/lib/roles.rb CHANGED
@@ -12,7 +12,7 @@ module Roles
12
12
  options.reverse_merge!({:role_cname => 'Role'})
13
13
  options.reverse_merge!({:user_cname => 'User'})
14
14
 
15
- roles_options = { :class_name => options[:role_cname].camelize }
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
18
  has_many :roles, roles_options
@@ -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.joins(:roles).where("roles.resource_type LIKE '%s'", self.to_s).where("roles.resource_id IS NULL")
10
+ self.user_class.includes(:roles).where("roles.resource_type LIKE '%s'", self.to_s).where("roles.resource_id IS NULL")
11
11
  else
12
- self.user_class.joins(: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(: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)
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.joins(:roles).where("roles.resource_type LIKE '%s'", self.class.to_s).where("roles.resource_id = %s", self.id)
19
+ self.class.user_class.includes(:roles).where("roles.resource_type LIKE '%s'", self.class.to_s).where("roles.resource_id = %s", self.id)
20
20
  else
21
- self.class.user_class.joins(: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(: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)
22
22
  end
23
23
  end
24
24
  end
data/lib/roles/role.rb CHANGED
@@ -7,11 +7,11 @@ module Roles
7
7
  module ClassMethods
8
8
  def with_role(role_name, resource = nil)
9
9
  if resource.nil?
10
- self.joins(: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(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type IS NULL").where("roles.resource_id IS NULL")
11
11
  elsif resource.is_a? Class
12
- self.joins(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type = '%s'", resource.to_s).where("roles.resource_id IS NULL")
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")
13
13
  else
14
- self.joins(:roles).where("roles.name LIKE '%s'", role_name.to_s).where("roles.resource_type = '%s'", resource.to_s).where("roles.resource_id = %s", resource.id)
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)
15
15
  end
16
16
  end
17
17
  end
@@ -65,9 +65,9 @@ module Roles
65
65
 
66
66
  def resources_with_role(resource_class, role_name = nil)
67
67
  if role_name.nil?
68
- resource_class.joins(: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(:roles).where("roles.#{self.class.user_cname.underscore.singularize}_id = %s", self.id).where("roles.resource_type LIKE '%s'", resource_class.to_s)
69
69
  else
70
- resource_class.joins(: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(: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)
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.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
data/roles.gemspec CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_development_dependency "sqlite3"
26
26
  end
27
27
  s.add_development_dependency "activerecord", ">= 3.1.0"
28
+ s.add_development_dependency "ammeter"
28
29
  s.add_development_dependency "rake"
29
30
  s.add_development_dependency "rspec", ">= 2.0"
30
31
  s.add_development_dependency "rspec-rails", ">= 2.0"
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ # Generators are not automatically loaded by Rails
4
+ require 'generators/roles/role/role_generator'
5
+
6
+ describe Roles::Generators::RoleGenerator do
7
+ # Tell the generator where to put its output (what it thinks of as Rails.root)
8
+ destination File.expand_path("../../../../../tmp", __FILE__)
9
+ teardown :cleanup_destination_root
10
+
11
+ before {
12
+ prepare_destination
13
+ }
14
+
15
+ def cleanup_destination_root
16
+ FileUtils.rm_rf destination_root
17
+ end
18
+
19
+ describe 'no arguments' do
20
+ before(:all) { arguments [] }
21
+
22
+ before {
23
+ capture(:stdout) {
24
+ generator.create_file "app/models/user.rb" do
25
+ "class User < ActiveRecord::Base\nend"
26
+ end
27
+ }
28
+ run_generator
29
+ }
30
+
31
+ describe 'app/models/role.rb' do
32
+ subject { file('app/models/role.rb') }
33
+ it { should exist }
34
+ it { should contain "class Role < ActiveRecord::Base" }
35
+ it { should contain "belongs_to :user" }
36
+ it { should contain "belongs_to :resource, :polymorphic => true" }
37
+ it { should contain "validates_uniqueness_of :name, :scope => [:user_id, :resource_type, :resource_id]" }
38
+ end
39
+
40
+ describe 'app/models/user.rb' do
41
+ subject { file('app/models/user.rb') }
42
+ it { should contain /class User < ActiveRecord::Base\n rolify\n/ }
43
+ end
44
+
45
+ describe 'migration file' do
46
+ subject { migration_file('db/migrate/roles_create_roles.rb') }
47
+
48
+ it { should be_a_migration }
49
+ it { should contain "create_table(:roles) do" }
50
+ end
51
+ end
52
+
53
+ describe 'specifying user and role names' do
54
+ before(:all) { arguments %w(AdminRole AdminUser) }
55
+
56
+ before {
57
+ capture(:stdout) {
58
+ generator.create_file "app/models/admin_user.rb" do
59
+ "class AdminUser < ActiveRecord::Base\nend"
60
+ end
61
+ }
62
+ run_generator
63
+ }
64
+
65
+ describe 'app/models/rank.rb' do
66
+ subject { file('app/models/admin_role.rb') }
67
+
68
+ it { should exist }
69
+ it { should contain "class AdminRole < ActiveRecord::Base" }
70
+ it { should contain "belongs_to :admin_user" }
71
+ it { should contain "belongs_to :resource, :polymorphic => true" }
72
+ it { should contain "validates_uniqueness_of :name, :scope => [:admin_user_id, :resource_type, :resource_id]" }
73
+ end
74
+
75
+ describe 'app/models/admin_user.rb' do
76
+ subject { file('app/models/admin_user.rb') }
77
+
78
+ it { should contain /class AdminUser < ActiveRecord::Base\n rolify :role_cname => 'AdminRole'\n/ }
79
+ end
80
+
81
+ describe 'migration file' do
82
+ subject { migration_file('db/migrate/roles_create_admin_roles.rb') }
83
+
84
+ it { should be_a_migration }
85
+ it { should contain "create_table(:admin_roles)" }
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,59 @@
1
+ require "spec_helper"
2
+
3
+ describe Roles::Resource do
4
+ before do
5
+ User.rolify :role_cname => "Role"
6
+ Forum.resourcify :role_cname => "Role"
7
+ Group.resourcify :role_cname => "Role"
8
+ reset_data
9
+ end
10
+
11
+ # Users
12
+ let(:admin) { User.first }
13
+ let(:tourist) { User.last }
14
+
15
+ describe "#users_with_role" do
16
+ before do
17
+ admin.add_role(:moderator, Forum.first)
18
+ admin.add_role(:admin, Forum.first)
19
+ admin.add_role(:admin, Forum)
20
+ tourist.add_role(:moderator, Forum.first)
21
+ end
22
+
23
+ context "on a Forum instance" do
24
+ subject { Forum.first }
25
+ it { should respond_to :users_with_role }
26
+ specify { subject.users_with_role.should == [admin, tourist] }
27
+ specify { subject.users_with_role(:moderator).should == [admin, tourist] }
28
+ specify { subject.users_with_role(:admin).should == [admin] }
29
+ specify { subject.users_with_role(:teacher).should == [] }
30
+ end
31
+
32
+ context "on Forum class" do
33
+ specify { Forum.should respond_to :users_with_role }
34
+ specify { Forum.users_with_role.should == [admin] }
35
+ specify { Forum.users_with_role(:moderator).should == [] }
36
+ specify { Forum.users_with_role(:admin).should == [admin] }
37
+ end
38
+
39
+ context "on a Group instance" do
40
+ subject { Group.last }
41
+
42
+ context "when deleting a Group instance" do
43
+ subject do
44
+ Group.create(:name => "to delete")
45
+ end
46
+
47
+ before do
48
+ subject.roles.create :name => "group_role1", :user => admin
49
+ subject.roles.create :name => "group_role2", :user => tourist
50
+ end
51
+
52
+ it "should remove the roles binded to this instance" do
53
+ expect { subject.destroy }.to change { Role.count }.by(-2)
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ end
@@ -0,0 +1,173 @@
1
+ require "spec_helper"
2
+
3
+ describe Roles::Role do
4
+ before do
5
+ User.rolify :role_cname => "Role"
6
+ Forum.resourcify :role_cname => "Role"
7
+ Group.resourcify :role_cname => "Role"
8
+ reset_data
9
+
10
+ @admin = User.first
11
+ @tourist = User.last
12
+ end
13
+
14
+ describe "#with_role" do
15
+ before do
16
+ @admin.add_role(:admin)
17
+ @admin.add_role(:moderator, Forum.first)
18
+ @admin.add_role(:godfather, Forum)
19
+ @tourist.add_role(:moderator, Forum.first)
20
+ end
21
+
22
+ specify { User.should respond_to :with_role }
23
+ specify { User.with_role(:admin).should == [@admin] }
24
+ specify { User.with_role(:moderator, Forum.first).should == [@admin, @tourist] }
25
+ specify { User.with_role(:moderator, Forum).should == [] }
26
+ specify { User.with_role(:godfather, Forum).should == [@admin] }
27
+ end
28
+
29
+ describe ".add_role" do
30
+ it "should be able to add global role" do
31
+ @admin.add_role :moderator
32
+ @admin.has_role?(:moderator).should be_true
33
+ end
34
+
35
+ it "should be able to add role on Forum class" do
36
+ @admin.add_role :moderator, Forum
37
+ @admin.has_role?(:moderator, Forum).should be_true
38
+ end
39
+
40
+ it "should be able to add role on a Forum instance" do
41
+ @admin.add_role :moderator, Forum.first
42
+ @admin.has_role?(:moderator, Forum.first).should be_true
43
+ end
44
+
45
+ it "should not add duplicate roles" do
46
+ @admin.add_role :moderator
47
+ @admin.add_role :moderator
48
+ @admin.role_names.should == ["moderator"]
49
+
50
+ @admin.add_role :moderator, Forum
51
+ @admin.add_role :moderator, Forum
52
+ @admin.role_names(Forum).should == ["moderator"]
53
+
54
+ @admin.add_role :moderator, Forum.first
55
+ @admin.add_role :moderator, Forum.first
56
+ @admin.role_names(Forum.first).should == ["moderator"]
57
+ end
58
+
59
+ it "should be use grant instead of add_role" do
60
+ @tourist.grant :admin
61
+ @tourist.has_role?(:admin).should be_true
62
+ end
63
+ end
64
+
65
+ describe ".remove_role" do
66
+ it "should be able to remove global role" do
67
+ @admin.add_role :moderator
68
+ @admin.has_role?(:moderator).should be_true
69
+ @admin.remove_role :moderator
70
+ @admin.has_role?(:moderator).should be_false
71
+ end
72
+
73
+ it "should be able to remove role on Forum class" do
74
+ @admin.add_role :moderator, Forum
75
+ @admin.has_role?(:moderator, Forum).should be_true
76
+ @admin.remove_role :moderator, Forum
77
+ @admin.has_role?(:moderator, Forum).should be_false
78
+ end
79
+
80
+ it "should be able to remove role on a Forum instance" do
81
+ @admin.add_role :moderator, Forum.first
82
+ @admin.has_role?(:moderator, Forum.first).should be_true
83
+ @admin.remove_role :moderator, Forum.first
84
+ @admin.has_role?(:moderator, Forum.first).should be_false
85
+ end
86
+
87
+ it "should be use revoke instead of remove_role" do
88
+ @tourist.grant :admin
89
+ @tourist.has_role?(:admin).should be_true
90
+ @tourist.revoke :admin
91
+ @tourist.has_role?(:admin).should be_false
92
+ end
93
+ end
94
+
95
+ describe ".has_role?" do
96
+ it "should be able to has_role? global role" do
97
+ @admin.add_role :moderator
98
+ @admin.add_role :teacher
99
+ @admin.has_role?(:moderator).should be_true
100
+ @admin.has_role?(:teacher).should be_true
101
+ end
102
+
103
+ it "should be able to has_role? on Forum class" do
104
+ @admin.add_role :moderator, Forum
105
+ @admin.add_role :teacher, Forum
106
+ @admin.has_role?(:moderator, Forum).should be_true
107
+ @admin.has_role?(:teacher, Forum).should be_true
108
+ end
109
+
110
+ it "should be able to has_role? on a Forum instance" do
111
+ @admin.add_role :moderator, Forum.first
112
+ @admin.add_role :teacher, Forum.first
113
+ @admin.has_role?(:moderator, Forum.first).should be_true
114
+ @admin.has_role?(:teacher, Forum.first).should be_true
115
+ end
116
+
117
+ it "should be use is_xxx instead of has_role?" do
118
+ @tourist.grant :admin
119
+ @tourist.has_role?(:admin).should be_true
120
+ @tourist.is_admin?.should be_true
121
+ end
122
+ end
123
+
124
+ describe ".role_names" do
125
+ it "should be able to list global role names" do
126
+ @admin.add_role :moderator
127
+ @admin.add_role :teacher
128
+ @admin.role_names.should == ["moderator", "teacher"]
129
+ end
130
+
131
+ it "should be able to list role names on Forum class" do
132
+ @admin.add_role :moderator, Forum
133
+ @admin.add_role :teacher, Forum
134
+ @admin.role_names(Forum).should == ["moderator", "teacher"]
135
+ end
136
+
137
+ it "should be able to list role names on a Forum instance" do
138
+ @admin.add_role :moderator, Forum.first
139
+ @admin.add_role :teacher, Forum.first
140
+ @admin.role_names(Forum.first).should == ["moderator", "teacher"]
141
+ end
142
+ end
143
+
144
+ describe ".resources_with_role" do
145
+ before do
146
+ @admin.add_role(:moderator, Forum.first)
147
+ @admin.add_role(:moderator, Forum.last)
148
+ @admin.add_role(:teacher, Forum.last)
149
+ @tourist.add_role(:moderator, Forum.first)
150
+ end
151
+
152
+ it "should be able to find all resources of which user has any role" do
153
+ @admin.resources_with_role(Forum).should == [Forum.first, Forum.last]
154
+ end
155
+
156
+ it "should be able to find all resources of which user has specific role" do
157
+ @admin.resources_with_role(Forum, :moderator).should == [Forum.first, Forum.last]
158
+ @admin.resources_with_role(Forum, :teacher).should == [Forum.last]
159
+ end
160
+ end
161
+
162
+ describe "roles get destroyed when user destroyed" do
163
+ before do
164
+ @admin.roles.create :name => "teacher"
165
+ @admin.roles.create :name => "moderator", :resource_type => "Forum"
166
+ @admin.roles.create :name => "admin", :resource => Forum.first
167
+ end
168
+
169
+ it "should remove the roles binded to this instance" do
170
+ expect { @admin.destroy }.to change { Role.count }.by(-3)
171
+ end
172
+ end
173
+ end
@@ -0,0 +1,35 @@
1
+ require 'rubygems'
2
+ require "bundler/setup"
3
+
4
+ require 'roles'
5
+ require 'ammeter/init'
6
+
7
+ load File.dirname(__FILE__) + "/support/active_record.rb"
8
+
9
+ def reset_data
10
+ User.destroy_all
11
+ Role.destroy_all
12
+ Forum.destroy_all
13
+ Group.destroy_all
14
+ Privilege.destroy_all
15
+ Customer.destroy_all
16
+
17
+ # Users
18
+ User.create(:login => "admin")
19
+ User.create(:login => "moderator")
20
+ User.create(:login => "god")
21
+ User.create(:login => "zombie")
22
+
23
+ Customer.create(:login => "admin")
24
+ Customer.create(:login => "moderator")
25
+ Customer.create(:login => "god")
26
+ Customer.create(:login => "zombie")
27
+
28
+ # Resources
29
+ Forum.create(:name => "forum 1")
30
+ Forum.create(:name => "forum 2")
31
+ Forum.create(:name => "forum 3")
32
+
33
+ Group.create(:name => "group 1")
34
+ Group.create(:name => "group 2")
35
+ end
@@ -0,0 +1,32 @@
1
+ require 'active_record'
2
+
3
+ RSpec::Matchers::OperatorMatcher.register(ActiveRecord::Relation, '=~', RSpec::Matchers::BuiltIn::MatchArray)
4
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
5
+ ActiveRecord::Base.extend Roles
6
+
7
+ load File.dirname(__FILE__) + '/schema.rb'
8
+
9
+ # ActiveRecord models
10
+ class User < ActiveRecord::Base
11
+ end
12
+
13
+ class Role < ActiveRecord::Base
14
+ belongs_to :user
15
+ belongs_to :resource, :polymorphic => true
16
+ end
17
+
18
+ class Forum < ActiveRecord::Base
19
+ #resourcify done during specs setup to be able to use custom user classes
20
+ end
21
+
22
+ class Group < ActiveRecord::Base
23
+ #resourcify done during specs setup to be able to use custom user classes
24
+ end
25
+
26
+ class Customer < ActiveRecord::Base
27
+ end
28
+
29
+ class Privilege < ActiveRecord::Base
30
+ belongs_to :customer
31
+ belongs_to :resource, :polymorphic => true
32
+ end
@@ -0,0 +1,33 @@
1
+ ActiveRecord::Schema.define do
2
+ self.verbose = false
3
+
4
+ create_table(:roles) do |t|
5
+ t.string :name
6
+ t.references :resource, :polymorphic => true
7
+ t.references :user
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ create_table(:users) do |t|
13
+ t.string :login
14
+ end
15
+
16
+ create_table(:forums) do |t|
17
+ t.string :name
18
+ end
19
+
20
+ create_table(:groups) do |t|
21
+ t.string :name
22
+ end
23
+
24
+ create_table(:privileges) do |t|
25
+ t.string :name
26
+ t.references :resource, :polymorphic => true
27
+ t.references :customer
28
+ end
29
+
30
+ create_table(:customers) do |t|
31
+ t.string :login
32
+ end
33
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roles
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-22 00:00:00.000000000 Z
12
+ date: 2012-09-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sqlite3
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: 3.1.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: ammeter
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: rake
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -116,7 +132,7 @@ extra_rdoc_files: []
116
132
  files:
117
133
  - .gitignore
118
134
  - .travis.yml
119
- - CHANGELOG.rdoc
135
+ - CHANGELOG.md
120
136
  - Gemfile
121
137
  - LICENSE
122
138
  - README.md
@@ -133,6 +149,12 @@ files:
133
149
  - lib/roles/role.rb
134
150
  - lib/roles/version.rb
135
151
  - roles.gemspec
152
+ - spec/generators/roles/role/role_generator_spec.rb
153
+ - spec/roles/resource_spec.rb
154
+ - spec/roles/role_spec.rb
155
+ - spec/spec_helper.rb
156
+ - spec/support/active_record.rb
157
+ - spec/support/schema.rb
136
158
  homepage: http://github.com/liufengyun/roles
137
159
  licenses: []
138
160
  post_install_message:
@@ -157,4 +179,10 @@ rubygems_version: 1.8.24
157
179
  signing_key:
158
180
  specification_version: 3
159
181
  summary: Roles library with resource scoping
160
- test_files: []
182
+ test_files:
183
+ - spec/generators/roles/role/role_generator_spec.rb
184
+ - spec/roles/resource_spec.rb
185
+ - spec/roles/role_spec.rb
186
+ - spec/spec_helper.rb
187
+ - spec/support/active_record.rb
188
+ - spec/support/schema.rb
data/CHANGELOG.rdoc DELETED
@@ -1,14 +0,0 @@
1
- = v0.0.5 (Aug 23, 2012)
2
- * fix user_cname nil problem in User class
3
-
4
- = v0.0.4 (Aug 23, 2012)
5
- * fix method name error(roles -> rolify)
6
-
7
- = v0.0.3 (Aug 23, 2012)
8
- * fix generator error
9
-
10
- = v0.0.2 (Aug 19, 2012)
11
- * rename `user.resources` to `user.resources_with_role`
12
-
13
- = v0.0.1 (Aug 17, 2012)
14
- * first release