roleable 0.0.1 → 0.0.2

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 CHANGED
@@ -1,3 +1,7 @@
1
1
  ## v0.0.1
2
2
 
3
- * Initial release
3
+ * Initial release
4
+
5
+ ## v0.0.2
6
+
7
+ * Fix a bug that allowed users not associated with a resource to be listed in Resource#users_with_role.
@@ -11,8 +11,7 @@ module Roleable::Resource
11
11
  # page.users_with_role(:editor) # => [user1, user2, ...]
12
12
  #
13
13
  def users_with_role(role_name)
14
- user_roles = ::UserRole.with_role_name(role_name)
15
- User.joins(:user_roles).merge(user_roles)
14
+ User.joins(:user_roles).merge(::UserRole.with_role_name(role_name).with_resource(self))
16
15
  end
17
16
 
18
17
  end
@@ -33,7 +33,7 @@ module Roleable::UserRole
33
33
  # that already have those attributes.
34
34
  #
35
35
  # Returns the record if it was saved, otherwise nil.
36
- def create_if_unique!(attributes)
36
+ def create_if_unique!(attributes)
37
37
  user_role = new(attributes)
38
38
 
39
39
  record_attributes = user_role.attributes.reject do |k, v|
@@ -1,3 +1,3 @@
1
1
  module Roleable
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -18,17 +18,27 @@ describe Roleable::Resource do
18
18
  end
19
19
 
20
20
  context 'when multiple users have the given role' do
21
- it 'returns a list of the users' do
22
- 3.times do
23
- user = User.create
24
- user.add_role(:editor, @page)
25
- end
21
+
22
+ before do
23
+ 3.times { User.create!.add_role(:editor, @page) }
24
+ end
26
25
 
26
+ it 'returns a list of the users' do
27
27
  users = @page.users_with_role(:editor)
28
28
 
29
29
  users.length.should == 3
30
30
  users.first.should be_a(User)
31
31
  end
32
+
33
+ it 'doesnt return users that dont have the role' do
34
+ other_page = Page.create
35
+ other_user = User.create!.add_role(:editor, other_page)
36
+
37
+ users = @page.users_with_role(:editor)
38
+
39
+ users.length.should == 3
40
+ end
41
+
32
42
  end
33
43
 
34
44
  end
metadata CHANGED
@@ -1,78 +1,108 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: roleable
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Mitch Crowe
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-04-14 00:00:00.000000000Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rake
16
- requirement: &2156383080 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-04-20 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
24
+ requirements:
19
25
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '0.9'
26
+ - !ruby/object:Gem::Version
27
+ hash: 25
28
+ segments:
29
+ - 0
30
+ - 9
31
+ version: "0.9"
32
+ prerelease: false
33
+ name: rake
34
+ version_requirements: *id001
22
35
  type: :development
36
+ - !ruby/object:Gem::Dependency
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ hash: 19
43
+ segments:
44
+ - 2
45
+ - 8
46
+ version: "2.8"
23
47
  prerelease: false
24
- version_requirements: *2156383080
25
- - !ruby/object:Gem::Dependency
26
48
  name: rspec
27
- requirement: &2156382260 !ruby/object:Gem::Requirement
49
+ version_requirements: *id002
50
+ type: :development
51
+ - !ruby/object:Gem::Dependency
52
+ requirement: &id003 !ruby/object:Gem::Requirement
28
53
  none: false
29
- requirements:
54
+ requirements:
30
55
  - - ~>
31
- - !ruby/object:Gem::Version
32
- version: '2.8'
33
- type: :development
56
+ - !ruby/object:Gem::Version
57
+ hash: 9
58
+ segments:
59
+ - 1
60
+ - 3
61
+ version: "1.3"
34
62
  prerelease: false
35
- version_requirements: *2156382260
36
- - !ruby/object:Gem::Dependency
37
63
  name: sqlite3
38
- requirement: &2156381480 !ruby/object:Gem::Requirement
64
+ version_requirements: *id003
65
+ type: :development
66
+ - !ruby/object:Gem::Dependency
67
+ requirement: &id004 !ruby/object:Gem::Requirement
39
68
  none: false
40
- requirements:
69
+ requirements:
41
70
  - - ~>
42
- - !ruby/object:Gem::Version
43
- version: '1.3'
44
- type: :development
71
+ - !ruby/object:Gem::Version
72
+ hash: 7
73
+ segments:
74
+ - 3
75
+ - 0
76
+ version: "3.0"
45
77
  prerelease: false
46
- version_requirements: *2156381480
47
- - !ruby/object:Gem::Dependency
48
78
  name: activerecord
49
- requirement: &2156380900 !ruby/object:Gem::Requirement
79
+ version_requirements: *id004
80
+ type: :development
81
+ - !ruby/object:Gem::Dependency
82
+ requirement: &id005 !ruby/object:Gem::Requirement
50
83
  none: false
51
- requirements:
84
+ requirements:
52
85
  - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
55
- type: :development
86
+ - !ruby/object:Gem::Version
87
+ hash: 15
88
+ segments:
89
+ - 0
90
+ - 2
91
+ version: "0.2"
56
92
  prerelease: false
57
- version_requirements: *2156380900
58
- - !ruby/object:Gem::Dependency
59
93
  name: with_model
60
- requirement: &2156380280 !ruby/object:Gem::Requirement
61
- none: false
62
- requirements:
63
- - - ~>
64
- - !ruby/object:Gem::Version
65
- version: '0.2'
94
+ version_requirements: *id005
66
95
  type: :development
67
- prerelease: false
68
- version_requirements: *2156380280
69
96
  description: Roles solution for active-record-backed Rails 3 applications
70
- email:
97
+ email:
71
98
  - crowe.mitch@gmail.com
72
99
  executables: []
100
+
73
101
  extensions: []
102
+
74
103
  extra_rdoc_files: []
75
- files:
104
+
105
+ files:
76
106
  - .gitignore
77
107
  - .rspec
78
108
  - .travis.yml
@@ -97,37 +127,41 @@ files:
97
127
  - spec/roleable/subject_spec.rb
98
128
  - spec/spec_helper.rb
99
129
  - spec/support/shared_contexts.rb
130
+ has_rdoc: true
100
131
  homepage: https://github.com/mcrowe/roleable
101
132
  licenses: []
133
+
102
134
  post_install_message:
103
135
  rdoc_options: []
104
- require_paths:
136
+
137
+ require_paths:
105
138
  - lib
106
- required_ruby_version: !ruby/object:Gem::Requirement
139
+ required_ruby_version: !ruby/object:Gem::Requirement
107
140
  none: false
108
- requirements:
109
- - - ! '>='
110
- - !ruby/object:Gem::Version
111
- version: '0'
112
- segments:
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ hash: 3
145
+ segments:
113
146
  - 0
114
- hash: 1300429085112405941
115
- required_rubygems_version: !ruby/object:Gem::Requirement
147
+ version: "0"
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
149
  none: false
117
- requirements:
118
- - - ! '>='
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- segments:
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ hash: 3
154
+ segments:
122
155
  - 0
123
- hash: 1300429085112405941
156
+ version: "0"
124
157
  requirements: []
158
+
125
159
  rubyforge_project:
126
- rubygems_version: 1.8.10
160
+ rubygems_version: 1.3.9.4
127
161
  signing_key:
128
162
  specification_version: 3
129
163
  summary: Roles solution for active-record-backed Rails 3 applications
130
- test_files:
164
+ test_files:
131
165
  - spec/roleable/resource_spec.rb
132
166
  - spec/roleable/subject_spec.rb
133
167
  - spec/spec_helper.rb