pundit-matchers 2.1.0 → 2.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca57a9d5fc96cbacd89c5af52106a126fa6cf01d72654c677fa5e1a7a957e139
4
- data.tar.gz: 5dd3c52dcf6cc289a76ba40947ff1d46fad538e5b6bfcec5484ba1d87b2092b9
3
+ metadata.gz: '013960778421a77229a9e50388f5cb7073cae3c60024b482f48c39431de063af'
4
+ data.tar.gz: 12a70d9a7ffdf1df5a2e584e555f3f934d36a971852605afa611c033a07c14dc
5
5
  SHA512:
6
- metadata.gz: e965e471adca0f06d4ab84e1d03f426902d5ac79bb69644afc88be3b158defb27bcd36d9170c6f47fbb3cbf7d832884a9b8f1e65bc3e7e0587d4ede6d75f9de5
7
- data.tar.gz: e8c47b1311ab7afc3d119714ee12d605d0063dc315f38a70e7fc0b5761e99432cd6f3fceb109a504e82b4c61621147197291dbd59f5d1dceb434e7f6ec346d80
6
+ metadata.gz: 4c00b1be800433a24203f2d964a810eaa7445ed98934598726e568b727db2ad6333886d1d7dffe56196a1bb445a982c6d17ea96cda737cca5a5ca7e801445ada
7
+ data.tar.gz: 0fb59915496d8b6807b01b84ce6f70c2c350e5dd6db00851c1e013211fb6ab41c6a1cc2f21c11f0a10107f116dadd666ff71228bcf06eee1ed706a90b56d9550
@@ -14,7 +14,7 @@ module Pundit
14
14
  def actions
15
15
  @actions ||= begin
16
16
  policy_methods = @policy.public_methods - Object.instance_methods
17
- policy_methods.grep(/\?$/).map { |policy_method| policy_method.to_s.sub(/\?$/, '').to_sym }
17
+ policy_methods.grep(/\?$/).sort.map { |policy_method| policy_method.to_s.delete_suffix('?').to_sym }
18
18
  end
19
19
  end
20
20
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rspec/core'
2
4
 
3
5
  module Pundit
@@ -30,27 +32,25 @@ module Pundit
30
32
  @configuration ||= Pundit::Matchers::Configuration.new
31
33
  end
32
34
  end
35
+ end
33
36
 
34
- RSpec::Matchers.define :forbid_action do |action, *args, **kwargs|
35
- match do |policy|
36
- if args.any?
37
- !policy.public_send("#{action}?", *args, **kwargs)
38
- else
39
- !policy.public_send("#{action}?", **kwargs)
40
- end
37
+ RSpec::Matchers.define :forbid_action do |action, *args, **kwargs|
38
+ match do |policy|
39
+ if args.any?
40
+ !policy.public_send("#{action}?", *args, **kwargs)
41
+ else
42
+ !policy.public_send("#{action}?", **kwargs)
41
43
  end
44
+ end
42
45
 
43
- failure_message do |policy|
44
- "#{policy.class} does not forbid #{action} for " +
45
- policy.public_send(Pundit::Matchers.configuration.user_alias)
46
- .inspect + '.'
47
- end
46
+ failure_message do |policy|
47
+ "#{policy.class} does not forbid #{action} for " \
48
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
49
+ end
48
50
 
49
- failure_message_when_negated do |policy|
50
- "#{policy.class} does not permit #{action} for " +
51
- policy.public_send(Pundit::Matchers.configuration.user_alias)
52
- .inspect + '.'
53
- end
51
+ failure_message_when_negated do |policy|
52
+ "#{policy.class} does not permit #{action} for " \
53
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
54
54
  end
55
55
  end
56
56
 
@@ -74,10 +74,9 @@ module Pundit
74
74
  if actions.count.zero?
75
75
  zero_actions_failure_message
76
76
  else
77
- "#{policy.class} expected to forbid #{actions}, but allowed " \
78
- "#{allowed_actions} for " +
79
- policy.public_send(Pundit::Matchers.configuration.user_alias)
80
- .inspect + '.'
77
+ "#{policy.class} expected to forbid #{actions}, but permitted " \
78
+ "#{allowed_actions} for " \
79
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
81
80
  end
82
81
  end
83
82
 
@@ -86,9 +85,8 @@ module Pundit
86
85
  zero_actions_failure_message
87
86
  else
88
87
  "#{policy.class} expected to permit #{actions}, but forbade " \
89
- "#{allowed_actions} for " +
90
- policy.public_send(Pundit::Matchers.configuration.user_alias)
91
- .inspect + '.'
88
+ "#{allowed_actions} for " \
89
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
92
90
  end
93
91
  end
94
92
  end
@@ -99,15 +97,13 @@ module Pundit
99
97
  end
100
98
 
101
99
  failure_message do |policy|
102
- "#{policy.class} does not forbid the edit or update action for " +
103
- policy.public_send(Pundit::Matchers.configuration.user_alias)
104
- .inspect + '.'
100
+ "#{policy.class} does not forbid the edit or update action for " \
101
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
105
102
  end
106
103
 
107
104
  failure_message_when_negated do |policy|
108
- "#{policy.class} does not permit the edit or update action for " +
109
- policy.public_send(Pundit::Matchers.configuration.user_alias)
110
- .inspect + '.'
105
+ "#{policy.class} does not permit the edit or update action for " \
106
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
111
107
  end
112
108
  end
113
109
 
@@ -143,17 +139,15 @@ module Pundit
143
139
  zero_attributes_failure_message
144
140
  elsif defined? @action
145
141
  "#{policy.class} expected to forbid the mass assignment of the " \
146
- "attributes #{attributes} when authorising the #{@action} action, " \
147
- 'but allowed the mass assignment of the attributes ' \
148
- "#{allowed_attributes} for " +
149
- policy.public_send(Pundit::Matchers.configuration.user_alias)
150
- .inspect + '.'
142
+ "attributes #{attributes} when authorising the #{@action} action, " \
143
+ 'but permitted the mass assignment of the attributes ' \
144
+ "#{allowed_attributes} for " \
145
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
151
146
  else
152
147
  "#{policy.class} expected to forbid the mass assignment of the " \
153
- "attributes #{attributes}, but allowed the mass assignment of " \
154
- "the attributes #{allowed_attributes} for " +
155
- policy.public_send(Pundit::Matchers.configuration.user_alias)
156
- .inspect + '.'
148
+ "attributes #{attributes}, but permitted the mass assignment of " \
149
+ "the attributes #{allowed_attributes} for " \
150
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
157
151
  end
158
152
  end
159
153
 
@@ -162,17 +156,15 @@ module Pundit
162
156
  zero_attributes_failure_message
163
157
  elsif defined? @action
164
158
  "#{policy.class} expected to permit the mass assignment of the " \
165
- "attributes #{attributes} when authorising the #{@action} action, " \
166
- 'but permitted the mass assignment of the attributes ' \
167
- "#{allowed_attributes} for " +
168
- policy.public_send(Pundit::Matchers.configuration.user_alias)
169
- .inspect + '.'
159
+ "attributes #{attributes} when authorising the #{@action} action, " \
160
+ 'but permitted the mass assignment of the attributes ' \
161
+ "#{allowed_attributes} for " \
162
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
170
163
  else
171
164
  "#{policy.class} expected to permit the mass assignment of the " \
172
- "attributes #{attributes}, but permitted the mass assignment of " \
173
- "the attributes #{allowed_attributes} for " +
174
- policy.public_send(Pundit::Matchers.configuration.user_alias)
175
- .inspect + '.'
165
+ "attributes #{attributes}, but permitted the mass assignment of " \
166
+ "the attributes #{allowed_attributes} for " \
167
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
176
168
  end
177
169
  end
178
170
  end
@@ -183,15 +175,13 @@ module Pundit
183
175
  end
184
176
 
185
177
  failure_message do |policy|
186
- "#{policy.class} does not forbid the new or create action for " +
187
- policy.public_send(Pundit::Matchers.configuration.user_alias)
188
- .inspect + '.'
178
+ "#{policy.class} does not forbid the new or create action for " \
179
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
189
180
  end
190
181
 
191
182
  failure_message_when_negated do |policy|
192
- "#{policy.class} does not permit the new or create action for " +
193
- policy.public_send(Pundit::Matchers.configuration.user_alias)
194
- .inspect + '.'
183
+ "#{policy.class} does not permit the new or create action for " \
184
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
195
185
  end
196
186
  end
197
187
 
@@ -205,15 +195,13 @@ module Pundit
205
195
  end
206
196
 
207
197
  failure_message do |policy|
208
- "#{policy.class} does not permit #{action} for " +
209
- policy.public_send(Pundit::Matchers.configuration.user_alias)
210
- .inspect + '.'
198
+ "#{policy.class} does not permit #{action} for " \
199
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
211
200
  end
212
201
 
213
202
  failure_message_when_negated do |policy|
214
- "#{policy.class} does not forbid #{action} for " +
215
- policy.public_send(Pundit::Matchers.configuration.user_alias)
216
- .inspect + '.'
203
+ "#{policy.class} does not forbid #{action} for " \
204
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
217
205
  end
218
206
  end
219
207
 
@@ -259,9 +247,8 @@ module Pundit
259
247
  zero_actions_failure_message
260
248
  else
261
249
  "#{policy.class} expected to permit #{actions}, but forbade " \
262
- "#{forbidden_actions} for " +
263
- policy.public_send(Pundit::Matchers.configuration.user_alias)
264
- .inspect + '.'
250
+ "#{forbidden_actions} for " \
251
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
265
252
  end
266
253
  end
267
254
 
@@ -269,10 +256,9 @@ module Pundit
269
256
  if actions.count.zero?
270
257
  zero_actions_failure_message
271
258
  else
272
- "#{policy.class} expected to forbid #{actions}, but allowed " \
273
- "#{forbidden_actions} for " +
274
- policy.public_send(Pundit::Matchers.configuration.user_alias)
275
- .inspect + '.'
259
+ "#{policy.class} expected to forbid #{actions}, but permitted " \
260
+ "#{forbidden_actions} for " \
261
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
276
262
  end
277
263
  end
278
264
  end
@@ -283,15 +269,13 @@ module Pundit
283
269
  end
284
270
 
285
271
  failure_message do |policy|
286
- "#{policy.class} does not permit the edit or update action for " +
287
- policy.public_send(Pundit::Matchers.configuration.user_alias)
288
- .inspect + '.'
272
+ "#{policy.class} does not permit the edit or update action for " \
273
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
289
274
  end
290
275
 
291
276
  failure_message_when_negated do |policy|
292
- "#{policy.class} does not forbid the edit or update action for " +
293
- policy.public_send(Pundit::Matchers.configuration.user_alias)
294
- .inspect + '.'
277
+ "#{policy.class} does not forbid the edit or update action for " \
278
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
295
279
  end
296
280
  end
297
281
 
@@ -327,17 +311,15 @@ module Pundit
327
311
  zero_attributes_failure_message
328
312
  elsif defined? @action
329
313
  "#{policy.class} expected to permit the mass assignment of the " \
330
- "attributes #{attributes} when authorising the #{@action} action, " \
331
- 'but forbade the mass assignment of the attributes ' \
332
- "#{forbidden_attributes} for " +
333
- policy.public_send(Pundit::Matchers.configuration.user_alias)
334
- .inspect + '.'
314
+ "attributes #{attributes} when authorising the #{@action} action, " \
315
+ 'but forbade the mass assignment of the attributes ' \
316
+ "#{forbidden_attributes} for " \
317
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
335
318
  else
336
319
  "#{policy.class} expected to permit the mass assignment of the " \
337
- "attributes #{attributes}, but forbade the mass assignment of the " \
338
- "attributes #{forbidden_attributes} for " +
339
- policy.public_send(Pundit::Matchers.configuration.user_alias)
340
- .inspect + '.'
320
+ "attributes #{attributes}, but forbade the mass assignment of the " \
321
+ "attributes #{forbidden_attributes} for " \
322
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
341
323
  end
342
324
  end
343
325
 
@@ -346,17 +328,15 @@ module Pundit
346
328
  zero_attributes_failure_message
347
329
  elsif defined? @action
348
330
  "#{policy.class} expected to forbid the mass assignment of the " \
349
- "attributes #{attributes} when authorising the #{@action} action, " \
350
- 'but forbade the mass assignment of the attributes ' \
351
- "#{forbidden_attributes} for " +
352
- policy.public_send(Pundit::Matchers.configuration.user_alias)
353
- .inspect + '.'
331
+ "attributes #{attributes} when authorising the #{@action} action, " \
332
+ 'but forbade the mass assignment of the attributes ' \
333
+ "#{forbidden_attributes} for " \
334
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
354
335
  else
355
336
  "#{policy.class} expected to forbid the mass assignment of the " \
356
- "attributes #{attributes}, but forbade the mass assignment of the " \
357
- "attributes #{forbidden_attributes} for " +
358
- policy.public_send(Pundit::Matchers.configuration.user_alias)
359
- .inspect + '.'
337
+ "attributes #{attributes}, but forbade the mass assignment of the " \
338
+ "attributes #{forbidden_attributes} for " \
339
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
360
340
  end
361
341
  end
362
342
  end
@@ -367,15 +347,13 @@ module Pundit
367
347
  end
368
348
 
369
349
  failure_message do |policy|
370
- "#{policy.class} does not permit the new or create action for " +
371
- policy.public_send(Pundit::Matchers.configuration.user_alias)
372
- .inspect + '.'
350
+ "#{policy.class} does not permit the new or create action for " \
351
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
373
352
  end
374
353
 
375
354
  failure_message_when_negated do |policy|
376
- "#{policy.class} does not forbid the new or create action for " +
377
- policy.public_send(Pundit::Matchers.configuration.user_alias)
378
- .inspect + '.'
355
+ "#{policy.class} does not forbid the new or create action for " \
356
+ "#{policy.public_send(Pundit::Matchers.configuration.user_alias).inspect}."
379
357
  end
380
358
  end
381
359
 
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: 2.1.0
4
+ version: 2.2.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: 2023-04-28 00:00:00.000000000 Z
11
+ date: 2023-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-rails
@@ -64,7 +64,7 @@ files:
64
64
  - lib/pundit/matchers/utils/only_actions/permitted_actions_error_formatter.rb
65
65
  - lib/pundit/matchers/utils/only_actions/permitted_actions_matcher.rb
66
66
  - lib/pundit/matchers/utils/policy_info.rb
67
- homepage: http://github.com/punditcommunity/pundit-matchers
67
+ homepage: https://github.com/punditcommunity/pundit-matchers
68
68
  licenses:
69
69
  - MIT
70
70
  metadata:
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
86
  requirements: []
87
- rubygems_version: 3.3.7
87
+ rubygems_version: 3.4.12
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: RSpec matchers for Pundit policies