class RuboCop::Cop::Rails::ActiveSupportAliases

This cop checks that ActiveSupport aliases to core ruby methods are not used.

@example

# good
'some_string'.start_with?('prefix')
'some_string'.end_with?('suffix')
[1, 2, 'a'] << 'b'
[1, 2, 'a'].unshift('b')

# bad
'some_string'.starts_with?('prefix')
'some_string'.ends_with?('suffix')
[1, 2, 'a'].append('b')
[1, 2, 'a'].prepend('b')

Constants

ALIASES
MSG
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/rails/active_support_aliases.rb, line 43
def on_send(node)
  ALIASES.each_key do |aliased_method|
    next unless public_send(aliased_method, node)

    preferred_method = ALIASES[aliased_method][:original]
    message = format(MSG, prefer: preferred_method, current: aliased_method)

    add_offense(node, message: message) do |corrector|
      next if append(node)

      corrector.replace(node.loc.selector, preferred_method)
    end
  end
end