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 inherited from Cop
Instance Attribute Summary
Attributes inherited from Cop
#config, #corrections, #offences, #processed_source
Instance Method Summary collapse
- #autocorrect(node) ⇒ Object
- #on_block(node) ⇒ Object
- #on_send(node) ⇒ Object
- #preferred_methods ⇒ Object
Methods inherited from Cop
#add_offence, all, #autocorrect?, #convention, #cop_config, cop_name, #cop_name, cop_type, #debug?, #ignore_node, inherited, #initialize, lint?, #message, non_rails, rails?, style?, #support_autocorrect?, #warning
Constructor Details
This class inherits a constructor from Rubocop::Cop::Cop
Instance Method Details
#autocorrect(node) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 35 def autocorrect(node) @corrections << lambda do |corrector| corrector.replace(node.loc.selector, preferred_method(node.loc.selector.source)) end end |
#on_block(node) ⇒ Object
21 22 23 24 25 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 21 def on_block(node) method, _args, _body = *node check_method_node(method) end |
#on_send(node) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 27 def on_send(node) _receiver, _method_name, *args = *node if args.size == 1 && args.first.type == :block_pass check_method_node(node) end end |
#preferred_methods ⇒ Object
15 16 17 18 19 |
# File 'lib/rubocop/cop/style/collection_methods.rb', line 15 def preferred_methods if cop_config['PreferredMethods'] cop_config['PreferredMethods'].symbolize_keys end end |