Class: RuboCop::Cop::Rails::ActiveSupportAliases
- Inherits:
-
RuboCop::Cop
- Object
- RuboCop::Cop
- RuboCop::Cop::Rails::ActiveSupportAliases
- Defined in:
- lib/rubocop/cop/rails/active_support_aliases.rb
Overview
This cop checks that ActiveSupport aliases to core ruby methods are not used.
Constant Summary collapse
- MSG =
'Use `%<prefer>s` instead of `%<current>s`.'
- ALIASES =
{ starts_with?: { original: :start_with?, matcher: '(send str :starts_with? _)' }, ends_with?: { original: :end_with?, matcher: '(send str :ends_with? _)' }, append: { original: :<<, matcher: '(send array :append _)' }, prepend: { original: :unshift, matcher: '(send array :prepend _)' } }.freeze
Instance Method Summary collapse
Instance Method Details
#autocorrect(node) ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/rubocop/cop/rails/active_support_aliases.rb', line 47 def autocorrect(node) return false if append(node) lambda do |corrector| method_name = node.loc.selector.source replacement = ALIASES[method_name.to_sym][:original] corrector.replace(node.loc.selector, replacement.to_s) end end |
#on_send(node) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/rubocop/cop/rails/active_support_aliases.rb', line 40 def on_send(node) ALIASES.each_key do |aliased_method| register_offense(node, aliased_method) if public_send(aliased_method, node) end end |