rubocops/livecheck: Rework LivecheckUrlProvided #16932
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?The existing
LivecheckUrlProvided
RuboCop requires aurl
for alllivecheck
blocks except those usingskip
,formula
, orcask
, as those only appear in alivecheck
block with no other DSL methods.We now have a
throttle
method that can be used alongside other DSL methods (e.g.,url
,regex
,strategy
) or by itself.brew style
currently fails whenthrottle
is used by itself (e.g., Homebrew/homebrew-core#166501), so this updates the conditions to allow this usage.I'm currently doing this by specifically exemptinglivecheck
blocks that only include#throttle
(i.e., so we don't unexpectedly skip the check forlivecheck
blocks that use#throttle
alongside other methods). I'm not very versed with RuboCop, so there may be a better way of achieving the same goal.I've gone about this by reworking the
LivecheckUrlProvided
RuboCop to only require aurl
when alivecheck
block uses#regex
and/or#strategy
, as that information is intended for a specific URL. This allows us to get rid of the special-case conditions for#skip
,#formula
, and#cask
(and avoid adding additional conditions for#throttle
).