Class: RuboCop::Cop::Style::ArrayJoin
- Defined in:
- lib/rubocop/cop/style/array_join.rb
Overview
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.
Constant Summary collapse
- MSG =
'Favor `Array#join` over `Array#*`.'
Constants included from Util
Util::ASGN_NODES, Util::EQUALS_ASGN_NODES, Util::OPERATOR_METHODS, Util::PROC_NEW_NODE, Util::SHORTHAND_ASGN_NODES
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary collapse
Methods inherited from Cop
#add_offense, all, #autocorrect?, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, #cop_name, cop_name, cop_name_with_namespace, cop_type, #debug?, #display_cop_names?, inherited, #initialize, #join_force?, lint?, #message, non_rails, qualified_cop_name, rails?, #relevant_file?, #support_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
begins_its_line?, block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, numeric_range_size, on_node, operator?, parentheses?, proc?, range_with_surrounding_space, source_range, strip_quotes, within_node?
Methods included from PathUtil
issue_deprecation_warning, match_path?, relative_path
Constructor Details
This class inherits a constructor from RuboCop::Cop::Cop
Instance Method Details
#on_send(node) ⇒ Object
14 15 16 17 18 19 20 |
# 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 |