class RuboCop::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/rubocop/cop/lint/inherit_exception.rb, line 54 def on_class(node) _class, base_class, _body = *node return unless base_class && illegal_class_name?(base_class) add_offense(base_class) end
Private Instance Methods
autocorrect(node)
click to toggle source
# File lib/rubocop/cop/lint/inherit_exception.rb, line 68 def autocorrect(node) lambda do |corrector| corrector.replace(node.loc.expression, preferred_base_class) end end
illegal_class_name?(class_node)
click to toggle source
# File lib/rubocop/cop/lint/inherit_exception.rb, line 74 def illegal_class_name?(class_node) ILLEGAL_CLASSES.include?(class_node.const_name) end
message(node)
click to toggle source
# File lib/rubocop/cop/lint/inherit_exception.rb, line 64 def message(node) format(MSG, preferred_base_class, node.const_name) end
preferred_base_class()
click to toggle source
# File lib/rubocop/cop/lint/inherit_exception.rb, line 78 def preferred_base_class PREFERRED_BASE_CLASS[style] end