Class: RuboCop::Cop::Style::CollectionMethods
- Defined in:
- lib/rubocop/cop/style/collection_methods.rb
Overview
This cop checks for uses of unidiomatic method names from the Enumerable module.
The current definition of the check is flawed and should be enhanced by check for by blocks & procs as arguments of the methods.
Constant Summary collapse
- MSG =
'Prefer `%s` over `%s`.'
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_type, #debug?, #display_cop_names?, #exclude_file?, #include_file?, 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
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
Methods included from PathUtil
Constructor Details
This class inherits a constructor from RuboCop::Cop::Cop
Instance Method Details
#autocorrect(node) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 28 def autocorrect(node) @corrections << lambda do |corrector| corrector.replace(node.loc.selector, preferred_method(node.loc.selector.source)) end end |
#on_block(node) ⇒ Object
15 16 17 18 19 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 15 def on_block(node) method, _args, _body = *node check_method_node(method) end |
#on_send(node) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 21 def on_send(node) _receiver, _method_name, *args = *node return unless args.size == 1 && args.first.type == :block_pass check_method_node(node) end |