class RuboCop::Cop::Style::RedundantException

Checks for RuntimeError as the argument of raise/fail.

It checks for code like this:

@example

# Bad
raise RuntimeError, 'message'

# Bad
raise RuntimeError.new('message')

# Good
raise 'message'

Constants

MSG_1
MSG_2
RESTRICT_ON_SEND

Public Instance Methods

fix_compact(node) click to toggle source
# File lib/rubocop/cop/style/redundant_exception.rb, line 45
def fix_compact(node)
  compact?(node) do |new_call, message|
    add_offense(node, message: MSG_2) do |corrector|
      corrector.replace(new_call, message.source)
    end
  end
end
fix_exploded(node) click to toggle source
# File lib/rubocop/cop/style/redundant_exception.rb, line 33
def fix_exploded(node)
  exploded?(node) do |command, message|
    add_offense(node, message: MSG_1) do |corrector|
      if node.parenthesized?
        corrector.replace(node, "#{command}(#{message.source})")
      else
        corrector.replace(node, "#{command} #{message.source}")
      end
    end
  end
end
on_send(node) click to toggle source

Switch `raise RuntimeError, 'message'` to `raise 'message'`, and `raise RuntimeError.new('message')` to `raise 'message'`.

# File lib/rubocop/cop/style/redundant_exception.rb, line 29
def on_send(node)
  fix_exploded(node) || fix_compact(node)
end