Add on_cask_stanza_block.

This commit is contained in:
Markus Reiter 2023-04-22 04:00:04 +02:00
parent 8035d46dfe
commit 2dea4f2370
No known key found for this signature in database
GPG Key ID: 245293B51702655B
2 changed files with 13 additions and 6 deletions

View File

@ -14,7 +14,8 @@ module RuboCop
def_node_matcher :key_node, "{(pair $_ _) (hash (pair $_ _) ...)}"
def_node_matcher :val_node, "{(pair _ $_) (hash (pair _ $_) ...)}"
def_node_matcher :cask_block?, "(block (send nil? :cask _) args ...)"
def_node_matcher :cask_block?, "(block (send nil? :cask ...) args ...)"
def_node_matcher :on_system_block?, "(block (send nil? {#{ON_SYSTEM_METHODS.map(&:inspect).join(" ")}} ...) args ...)"
def_node_matcher :arch_variable?, "(lvasgn _ (send nil? :on_arch_conditional ...))"
def_node_matcher :begin_block?, "(begin ...)"

View File

@ -13,15 +13,21 @@ module RuboCop
sig { abstract.params(cask_block: RuboCop::Cask::AST::CaskBlock).void }
def on_cask(cask_block); end
def on_cask_stanza_block(cask_stanza_block); end
def on_block(block_node)
super if defined? super
return unless respond_to?(:on_cask)
return unless block_node.cask_block?
if respond_to?(:on_cask_stanza_block) && (block_node.cask_block? || block_node.on_system_block?)
on_cask_stanza_block(block_node)
end
if respond_to?(:on_cask) && block_node.cask_block?
comments = processed_source.comments
cask_block = RuboCop::Cask::AST::CaskBlock.new(block_node, comments)
on_cask(cask_block)
end
end
def on_system_methods(cask_stanzas)
cask_stanzas.select { |s| RuboCop::Cask::Constants::ON_SYSTEM_METHODS.include?(s.stanza_name) }