Exception: Lutaml::Xsd::Errors::EnhancedError
- Inherits:
-
StandardError
- Object
- StandardError
- Lutaml::Xsd::Errors::EnhancedError
- Defined in:
- lib/lutaml/xsd/errors/enhanced_error.rb
Overview
Base class for enhanced errors with rich contextual information
Class Attribute Summary collapse
-
.suggester_class ⇒ Class?
Get suggester class for this error type.
-
.troubleshooter_class ⇒ Class?
Get troubleshooter class for this error type.
Instance Attribute Summary collapse
-
#context ⇒ ErrorContext
readonly
Error context.
Class Method Summary collapse
-
.use_suggester(klass) ⇒ void
Register suggester for this error type.
-
.use_troubleshooter(klass) ⇒ void
Register troubleshooter for this error type.
Instance Method Summary collapse
-
#error_code ⇒ String
Get error code.
-
#initialize(message, context: {}) ⇒ EnhancedError
constructor
Initialize enhanced error.
-
#severity ⇒ Symbol
Get error severity.
-
#suggestions ⇒ Array<Suggestion>
Get error suggestions.
-
#to_detailed_message ⇒ String
Build detailed error message with context, suggestions, and tips.
-
#troubleshooting_tips ⇒ Array<String>
Get troubleshooting tips.
Constructor Details
#initialize(message, context: {}) ⇒ EnhancedError
Initialize enhanced error
34 35 36 37 38 39 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 34 def initialize(, context: {}) super() @context = context.is_a?(ErrorContext) ? context : ErrorContext.new(context) @suggester = nil @troubleshooter = nil end |
Class Attribute Details
.suggester_class ⇒ Class?
Get suggester class for this error type
104 105 106 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 104 def suggester_class @suggester_class end |
.troubleshooter_class ⇒ Class?
Get troubleshooter class for this error type
113 114 115 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 113 def troubleshooter_class @troubleshooter_class end |
Instance Attribute Details
#context ⇒ ErrorContext (readonly)
Returns Error context.
28 29 30 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 28 def context @context end |
Class Method Details
.use_suggester(klass) ⇒ void
This method returns an undefined value.
Register suggester for this error type
123 124 125 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 123 def use_suggester(klass) self.suggester_class = klass end |
.use_troubleshooter(klass) ⇒ void
This method returns an undefined value.
Register troubleshooter for this error type
131 132 133 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 131 def use_troubleshooter(klass) self.troubleshooter_class = klass end |
Instance Method Details
#error_code ⇒ String
Get error code
69 70 71 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 69 def error_code "E000" end |
#severity ⇒ Symbol
Get error severity
76 77 78 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 76 def severity :error end |
#suggestions ⇒ Array<Suggestion>
Get error suggestions
44 45 46 47 48 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 44 def suggestions return [] unless suggester @suggestions ||= suggester.generate_suggestions(self) end |
#to_detailed_message ⇒ String
Build detailed error message with context, suggestions, and tips
62 63 64 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 62 def MessageBuilder.new(self).build end |
#troubleshooting_tips ⇒ Array<String>
Get troubleshooting tips
53 54 55 56 57 |
# File 'lib/lutaml/xsd/errors/enhanced_error.rb', line 53 def troubleshooting_tips return [] unless troubleshooter @troubleshooting_tips ||= troubleshooter.generate_tips(self) end |