pundit-matchers 1.0.2 → 1.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pundit/matchers.rb +66 -26
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6da63810349db845aacf792c80cd2436b275eaf9
4
- data.tar.gz: d7f3c91ccaf71149e87d9a87198006d148be3c9b
3
+ metadata.gz: c237783c9720f52b37ead7abf55f5c383107d4bb
4
+ data.tar.gz: 1e7f173871d4460b1124584cc2b9e6b522cf6251
5
5
  SHA512:
6
- metadata.gz: 3fc712d8b3b02dfdab84de7a0b9c5b368d52715c0691bc4cc43678748282099433d099d05a7eac43e6ed9e888d234af2380447960a93d02d095ad8f174601d51
7
- data.tar.gz: 3e9d67313289a15a7f9aee53086020780024d55d2a819db783db9a8bec317ab55addb777c7cb6392019c1cda7458b9d94f1826d36953ce5eff23e7bfd354d336
6
+ metadata.gz: 37abbbf51d6f80013ed6e1a6a59b38aa60a89f6ef3ea4e75e8073e88180dcc7c959669b7e45ffd6f3106f56ed8d78299d6483f1671c57523650cb6f600100680
7
+ data.tar.gz: 1ce22d083a336dbb4934bcd329a652038fc96376510e40695efc47805e2823674467586835109bab06f8990717cab9bbfbee27d36a9b3d7dacdc65bb6ab3bd8f
@@ -8,61 +8,81 @@ module Pundit
8
8
  end
9
9
 
10
10
  failure_message do |policy|
11
- "#{policy.class} does not permit #{action} on #{policy.record} for " +
11
+ "#{policy.class} does not permit #{action} on #{policy.record} for " \
12
12
  "#{policy.user.inspect}."
13
13
  end
14
14
 
15
15
  failure_message_when_negated do |policy|
16
- "#{policy.class} does not forbid #{action} on #{policy.record} for " +
16
+ "#{policy.class} does not forbid #{action} on #{policy.record} for " \
17
17
  "#{policy.user.inspect}."
18
18
  end
19
19
  end
20
20
 
21
21
  RSpec::Matchers.define :permit_new_and_create_actions do
22
22
  match do |policy|
23
- policy.new? and policy.create?
23
+ policy.new? && policy.create?
24
24
  end
25
25
 
26
26
  failure_message do |policy|
27
- "#{policy.class} does not permit the new or create action on " +
27
+ "#{policy.class} does not permit the new or create action on " \
28
28
  "#{policy.record} for #{policy.user.inspect}."
29
29
  end
30
30
 
31
31
  failure_message_when_negated do |policy|
32
- "#{policy.class} does not forbid the new or create action on " +
32
+ "#{policy.class} does not forbid the new or create action on " \
33
33
  "#{policy.record} for #{policy.user.inspect}."
34
34
  end
35
35
  end
36
36
 
37
37
  RSpec::Matchers.define :permit_edit_and_update_actions do
38
38
  match do |policy|
39
- policy.edit? and policy.update?
39
+ policy.edit? && policy.update?
40
40
  end
41
41
 
42
42
  failure_message do |policy|
43
- "#{policy.class} does not permit the edit or update action on " +
43
+ "#{policy.class} does not permit the edit or update action on " \
44
44
  "#{policy.record} for #{policy.user.inspect}."
45
45
  end
46
46
 
47
47
  failure_message_when_negated do |policy|
48
- "#{policy.class} does not forbid the edit or update action on " +
48
+ "#{policy.class} does not forbid the edit or update action on " \
49
49
  "#{policy.record} for #{policy.user.inspect}."
50
50
  end
51
51
  end
52
52
 
53
53
  RSpec::Matchers.define :permit_mass_assignment_of do |attribute|
54
54
  match do |policy|
55
- policy.permitted_attributes.include? attribute
55
+ if @action
56
+ policy.send("permitted_attributes_for_#{@action}").include? attribute
57
+ else
58
+ policy.permitted_attributes.include? attribute
59
+ end
60
+ end
61
+
62
+ chain :for_action do |action|
63
+ @action = action
56
64
  end
57
65
 
58
66
  failure_message do |policy|
59
- "#{policy.class} does not permit the mass assignment of the " +
60
- "#{attribute} attribute for #{policy.user.inspect}."
67
+ if @action
68
+ "#{policy.class} does not permit the mass assignment of the " \
69
+ "#{attribute} attribute, when authorising the #{@action} action, " \
70
+ "for #{policy.user.inspect}."
71
+ else
72
+ "#{policy.class} does not permit the mass assignment of the " \
73
+ "#{attribute} attribute for #{policy.user.inspect}."
74
+ end
61
75
  end
62
76
 
63
77
  failure_message_when_negated do |policy|
64
- "#{policy.class} does not forbid the mass assignment of the " +
65
- "#{attribute} attribute for #{policy.user.inspect}."
78
+ if @action
79
+ "#{policy.class} does not forbid the mass assignment of the " \
80
+ "#{attribute} attribute, when authorising the #{@action} action, " \
81
+ "for #{policy.user.inspect}."
82
+ else
83
+ "#{policy.class} does not forbid the mass assignment of the " \
84
+ "#{attribute} attribute for #{policy.user.inspect}."
85
+ end
66
86
  end
67
87
  end
68
88
 
@@ -72,61 +92,81 @@ module Pundit
72
92
  end
73
93
 
74
94
  failure_message do |policy|
75
- "#{policy.class} does not forbid #{action} on #{policy.record} for " +
95
+ "#{policy.class} does not forbid #{action} on #{policy.record} for " \
76
96
  "#{policy.user.inspect}."
77
97
  end
78
98
 
79
99
  failure_message_when_negated do |policy|
80
- "#{policy.class} does not permit #{action} on #{policy.record} for " +
100
+ "#{policy.class} does not permit #{action} on #{policy.record} for " \
81
101
  "#{policy.user.inspect}."
82
102
  end
83
103
  end
84
104
 
85
105
  RSpec::Matchers.define :forbid_new_and_create_actions do
86
106
  match do |policy|
87
- !policy.new? and !policy.create?
107
+ !policy.new? && !policy.create?
88
108
  end
89
109
 
90
110
  failure_message do |policy|
91
- "#{policy.class} does not forbid the new or create action on " +
111
+ "#{policy.class} does not forbid the new or create action on " \
92
112
  "#{policy.record} for #{policy.user.inspect}."
93
113
  end
94
114
 
95
115
  failure_message_when_negated do |policy|
96
- "#{policy.class} does not permit the new or create action on " +
116
+ "#{policy.class} does not permit the new or create action on " \
97
117
  "#{policy.record} for #{policy.user.inspect}."
98
118
  end
99
119
  end
100
120
 
101
121
  RSpec::Matchers.define :forbid_edit_and_update_actions do
102
122
  match do |policy|
103
- !policy.edit? and !policy.update?
123
+ !policy.edit? && !policy.update?
104
124
  end
105
125
 
106
126
  failure_message do |policy|
107
- "#{policy.class} does not forbid the edit or update action on " +
127
+ "#{policy.class} does not forbid the edit or update action on " \
108
128
  "#{policy.record} for #{policy.user.inspect}."
109
129
  end
110
130
 
111
131
  failure_message_when_negated do |policy|
112
- "#{policy.class} does not permit the edit or update action on " +
132
+ "#{policy.class} does not permit the edit or update action on " \
113
133
  "#{policy.record} for #{policy.user.inspect}."
114
134
  end
115
135
  end
116
136
 
117
137
  RSpec::Matchers.define :forbid_mass_assignment_of do |attribute|
118
138
  match do |policy|
119
- policy.permitted_attributes.exclude? attribute
139
+ if @action
140
+ policy.send("permitted_attributes_for_#{@action}").exclude? attribute
141
+ else
142
+ policy.permitted_attributes.exclude? attribute
143
+ end
144
+ end
145
+
146
+ chain :for_action do |action|
147
+ @action = action
120
148
  end
121
149
 
122
150
  failure_message do |policy|
123
- "#{policy.class} does not forbid the mass assignment of the " +
124
- "#{attribute} attribute for #{policy.user.inspect}."
151
+ if @action
152
+ "#{policy.class} does not forbid the mass assignment of the " \
153
+ "#{attribute} attribute, when authorising the #{@action} action, " \
154
+ "for #{policy.user.inspect}."
155
+ else
156
+ "#{policy.class} does not forbid the mass assignment of the " \
157
+ "#{attribute} attribute for #{policy.user.inspect}."
158
+ end
125
159
  end
126
160
 
127
161
  failure_message_when_negated do |policy|
128
- "#{policy.class} does not permit the mass assignment of the " +
129
- "#{attribute} attribute for #{policy.user.inspect}."
162
+ if @action
163
+ "#{policy.class} does not permit the mass assignment of the " \
164
+ "#{attribute} attribute, when authorising the #{@action} action, " \
165
+ "for #{policy.user.inspect}."
166
+ else
167
+ "#{policy.class} does not permit the mass assignment of the " \
168
+ "#{attribute} attribute for #{policy.user.inspect}."
169
+ end
130
170
  end
131
171
  end
132
172
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pundit-matchers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Alley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-09 00:00:00.000000000 Z
11
+ date: 2016-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pundit
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.1'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.0
22
+ version: 1.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '1.1'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.0
32
+ version: 1.1.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rspec-rails
35
35
  requirement: !ruby/object:Gem::Requirement