Class: RuboCop::Cop::Performance::Casecmp
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Performance::Casecmp
- Extended by:
- AutoCorrector
- Defined in:
- lib/rubocop/cop/performance/casecmp.rb
Overview
This cop identifies places where a case-insensitive string comparison can better be implemented using `casecmp`.
Constant Summary collapse
- MSG =
'Use `%<good>s` instead of `%<bad>s`.'- RESTRICT_ON_SEND =
%i[== eql? !=].freeze
- CASE_METHODS =
%i[downcase upcase].freeze
Instance Method Summary collapse
Instance Method Details
#on_send(node) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/rubocop/cop/performance/casecmp.rb', line 52 def on_send(node) return unless downcase_eq(node) || eq_downcase(node) return unless (parts = take_method_apart(node)) _receiver, method, arg, variable = parts good_method = build_good_method(arg, variable) = format(MSG, good: good_method, bad: node.source) add_offense(node, message: ) do |corrector| correction(corrector, node, method, arg, variable) end end |