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.
Constants
- MSG
Public Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/style/array_join.rb, line 22 def autocorrect(node) receiver_node, _method_name, *arg_nodes = *node array = receiver_node.source join_arg = arg_nodes[0].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 14 def on_send(node) receiver_node, method_name, *arg_nodes = *node return unless receiver_node && receiver_node.type == :array && method_name == :* && arg_nodes[0].type == :str add_offense(node, :selector) end