class RuboCop::Cop::Style::ArrayJoin

This cop checks for uses of “*” as a substitute for join.

Not all cases can reliably checked, due to Ruby's dynamic types, so we consider only cases when the first argument is an array literal or the second is a string literal.

@example

# bad
%w(foo bar baz) * ","

# good
%w(foo bar baz).join(",")

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/style/array_join.rb, line 29
def autocorrect(node)
  array, join_arg = join_candidate?(node).map(&:source)

  lambda do |corrector|
    corrector.replace(node.source_range, "#{array}.join(#{join_arg})")
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/style/array_join.rb, line 25
def on_send(node)
  join_candidate?(node) { add_offense(node, location: :selector) }
end