class RubbyCop::Cop::Lint::InheritException
This cop looks for error classes inheriting from `Exception` and its standard library subclasses, excluding subclasses of `StandardError`. It is configurable to suggest using either `RuntimeError` (default) or `StandardError` instead.
@example
# bad class C < Exception; end
@example
# EnforcedStyle: runtime_error (default) # good class C < RuntimeError; end
@example
# EnforcedStyle: standard_error # good class C < StandardError; end
Constants
- ILLEGAL_CLASSES
- MSG
- PREFERRED_BASE_CLASS
Public Instance Methods
on_class(node)
click to toggle source
# File lib/rubbycop/cop/lint/inherit_exception.rb, line 54 def on_class(node) _class, base_class, _body = *node return if base_class.nil? check(base_class) end
Private Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubbycop/cop/lint/inherit_exception.rb, line 71 def autocorrect(node) lambda do |corrector| corrector.replace(node.loc.expression, preferred_base_class) end end
check(node)
click to toggle source
# File lib/rubbycop/cop/lint/inherit_exception.rb, line 64 def check(node) return unless ILLEGAL_CLASSES.include?(node.const_name) msg = format(MSG, preferred_base_class, node.const_name) add_offense(node, :expression, msg) end
preferred_base_class()
click to toggle source
# File lib/rubbycop/cop/lint/inherit_exception.rb, line 77 def preferred_base_class PREFERRED_BASE_CLASS[style] end