lib/rubocop/cop/style/word_array.rb in rubocop-0.49.1 vs lib/rubocop/cop/style/word_array.rb in rubocop-0.50.0
- old
+ new
@@ -33,10 +33,11 @@
# %w[foo bar baz]
class WordArray < Cop
include ArrayMinSize
include ArraySyntax
include ConfigurableEnforcedStyle
+ include PercentArray
include PercentLiteral
PERCENT_MSG = 'Use `%w` or `%W` for an array of words.'.freeze
ARRAY_MSG = 'Use `[]` for an array of words.'.freeze
QUESTION_MARK_SIZE = '?'.size
@@ -45,50 +46,32 @@
attr_accessor :largest_brackets
end
def on_array(node)
if bracketed_array_of?(:str, node)
+ return if complex_content?(node.values)
+
check_bracketed_array(node)
elsif node.percent_literal?(:string)
check_percent_array(node)
end
end
+ private
+
def autocorrect(node)
if style == :percent
correct_percent(node, 'w')
else
correct_bracketed(node)
end
end
- private
-
def check_bracketed_array(node)
- return if complex_content?(node.values) ||
- comments_in_array?(node) ||
- below_array_length?(node)
+ return if allowed_bracket_array?(node)
array_style_detected(:brackets, node.values.size)
- add_offense(node, :expression, PERCENT_MSG) if style == :percent
- end
-
- def check_percent_array(node)
- array_style_detected(:percent, node.values.size)
- add_offense(node, :expression, ARRAY_MSG) if style == :brackets
- end
-
- def percent_syntax?(node)
- node.loc.begin && node.loc.begin.source =~ /\A%[wW]/
- end
-
- def comments_in_array?(node)
- comments = processed_source.comments
- array_range = node.source_range.to_a
-
- comments.any? do |comment|
- !(comment.loc.expression.to_a & array_range).empty?
- end
+ add_offense(node) if style == :percent
end
def complex_content?(strings)
strings.any? do |s|
string = s.str_content