lib/rubocop/cop/style/word_array.rb in rubocop-0.17.0 vs lib/rubocop/cop/style/word_array.rb in rubocop-0.18.0

- old
+ new

@@ -51,9 +51,36 @@ end def min_size cop_config['MinSize'] end + + def autocorrect(node) + sb = node.loc.expression.source_buffer + interpolated = false + + contents = node.children.map do |n| + if character_literal?(n) + interpolated = true + begin_pos = n.loc.expression.begin_pos + '?'.length + end_pos = n.loc.expression.end_pos + else + begin_pos = n.loc.begin.end_pos + end_pos = n.loc.end.begin_pos + end + Parser::Source::Range.new(sb, begin_pos, end_pos).source + end.join(' ') + + char = interpolated ? 'W' : 'w' + + @corrections << lambda do |corrector| + corrector.replace(node.loc.expression, "%#{char}(#{contents})") + end + end + + def character_literal?(node) + node.loc.end.nil? + end end end end end