lines_cop: flag depends_on :perl => "1.0".

This requires ignoring the version argument with a new `:any` mode
for this check.
This commit is contained in:
Mike McQuaid 2018-01-07 14:08:58 +00:00
parent 069b61029b
commit c8b859faad

View File

@ -146,7 +146,7 @@ module RuboCop
# Returns nil if does not depend on dependency_name # Returns nil if does not depend on dependency_name
# args: node - dependency_name - dependency's name # args: node - dependency_name - dependency's name
def depends_on?(dependency_name, *types) def depends_on?(dependency_name, *types)
types = [:required, :build, :optional, :recommended, :run] if types.empty? types = [:any] if types.empty?
dependency_nodes = find_every_method_call_by_name(@body, :depends_on) dependency_nodes = find_every_method_call_by_name(@body, :depends_on)
idx = dependency_nodes.index do |n| idx = dependency_nodes.index do |n|
types.any? { |type| depends_on_name_type?(n, dependency_name, type) } types.any? { |type| depends_on_name_type?(n, dependency_name, type) }
@ -168,14 +168,14 @@ module RuboCop
case type case type
when :required when :required
type_match = required_dependency?(node) type_match = required_dependency?(node)
if type_match && !name_match name_match ||= required_dependency_name?(node, name) if type_match
name_match = required_dependency_name?(node, name)
end
when :build, :optional, :recommended, :run when :build, :optional, :recommended, :run
type_match = dependency_type_hash_match?(node, type) type_match = dependency_type_hash_match?(node, type)
if type_match && !name_match name_match ||= dependency_name_hash_match?(node, name) if type_match
name_match = dependency_name_hash_match?(node, name) when :any
end type_match = true
name_match ||= required_dependency_name?(node, name)
name_match ||= dependency_name_hash_match?(node, name)
else else
type_match = false type_match = false
end end
@ -214,7 +214,7 @@ module RuboCop
EOS EOS
def_node_search :dependency_name_hash_match?, <<~EOS def_node_search :dependency_name_hash_match?, <<~EOS
(hash (pair ({str sym} %1) ({str sym} _))) (hash (pair ({str sym} %1) ({str sym array} _)))
EOS EOS
# To compare node with appropriate Ruby variable # To compare node with appropriate Ruby variable