roleable 0.0.1 → 0.0.2

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