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

Public Instance Methods

on_send(node) click to toggle source
# 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

Private Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/rails/active_support_aliases.rb, line 49
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
register_offense(node, method_name) click to toggle source
# File lib/rubocop/cop/rails/active_support_aliases.rb, line 58
def register_offense(node, method_name)
  add_offense(
    node,
    message: format(MSG, ALIASES[method_name][:original], method_name)
  )
end