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 +5 -1
- data/lib/roleable/resource.rb +1 -2
- data/lib/roleable/user_role.rb +1 -1
- data/lib/roleable/version.rb +1 -1
- data/spec/roleable/resource_spec.rb +15 -5
- metadata +96 -62
data/CHANGELOG
CHANGED
data/lib/roleable/resource.rb
CHANGED
@@ -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
|
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
|
data/lib/roleable/user_role.rb
CHANGED
@@ -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|
|
data/lib/roleable/version.rb
CHANGED
@@ -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
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
33
|
-
|
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
|
-
|
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
|
-
|
44
|
-
|
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
|
-
|
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
|
-
|
55
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
112
|
-
segments:
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 3
|
145
|
+
segments:
|
113
146
|
- 0
|
114
|
-
|
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
|
-
|
121
|
-
segments:
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 3
|
154
|
+
segments:
|
122
155
|
- 0
|
123
|
-
|
156
|
+
version: "0"
|
124
157
|
requirements: []
|
158
|
+
|
125
159
|
rubyforge_project:
|
126
|
-
rubygems_version: 1.
|
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
|