Sha256: 563e09e32961ad6e1b946a4c758f9b13f458d4b0a310803145792758dd2a0e93
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
# encoding: utf-8 module Rubocop module Cop module Style # 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. class CollectionMethods < Cop MSG = 'Prefer %s over %s.' def preferred_methods if cop_config['PreferredMethods'] cop_config['PreferredMethods'].symbolize_keys end end def on_block(node) method, _args, _body = *node check_method_node(method) end def on_send(node) _receiver, _method_name, *args = *node if args.size == 1 && args.first.type == :block_pass check_method_node(node) end end def autocorrect(node) @corrections << lambda do |corrector| corrector.replace(node.loc.selector, preferred_method(node.loc.selector.source)) end end private def check_method_node(node) _receiver, method_name, *_args = *node if preferred_methods[method_name] add_offense( node, :selector, format(MSG, preferred_method(method_name), method_name) ) end end def preferred_method(method) preferred_methods[method.to_sym] end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.19.1 | lib/rubocop/cop/style/collection_methods.rb |
rubocop-0.19.0 | lib/rubocop/cop/style/collection_methods.rb |