Exception: Toys::ArgParser::UsageError
- Inherits:
-
StandardError
- Object
- StandardError
- Toys::ArgParser::UsageError
- Defined in:
- lib/toys/arg_parser.rb
Overview
Base representation of a usage error reported by the ArgParser.
This is normally not raised directly, but returned as an element in the #errors array. It will, however, have the normal message and backtrace attributes, along with additional fields as defined in this class, and it can be raised later if desired.
Direct Known Subclasses
ArgMissingError, ArgValueUnacceptableError, ExtraArgumentsError, FlagAmbiguousError, FlagGroupConstraintError, FlagUnrecognizedError, FlagValueMissingError, FlagValueNotAllowedError, FlagValueUnacceptableError, ToolUnrecognizedError
Instance Attribute Summary collapse
-
#message ⇒ String
readonly
The error message, not including any suggestions.
-
#name ⇒ String?
readonly
The name of the element (normally a flag or positional argument) that reported the error.
-
#suggestions ⇒ Array<String>?
readonly
An array of suggestions from DidYouMean.
-
#value ⇒ String?
readonly
The value that was rejected.
Instance Method Summary collapse
-
#initialize(message, name: nil, value: nil, suggestions: nil, skip_frames: 0) ⇒ UsageError
constructor
Create a UsageError given a message and common data.
-
#message_with_suggestions ⇒ String
(also: #to_s)
A fully formatted error message including suggestions.
Constructor Details
#initialize(message, name: nil, value: nil, suggestions: nil, skip_frames: 0) ⇒ UsageError
Create a UsageError given a message and common data
36 37 38 39 40 41 42 43 |
# File 'lib/toys/arg_parser.rb', line 36 def initialize(, name: nil, value: nil, suggestions: nil, skip_frames: 0) super() @message = @name = name @value = value @suggestions = suggestions ::Toys::Compat.set_backtrace(self, caller_locations(skip_frames + 1)) end |
Instance Attribute Details
#message ⇒ String (readonly)
Returns The error message, not including any suggestions.
48 49 50 |
# File 'lib/toys/arg_parser.rb', line 48 def @message end |
#name ⇒ String? (readonly)
The name of the element (normally a flag or positional argument) that reported the error.
57 58 59 |
# File 'lib/toys/arg_parser.rb', line 57 def name @name end |
#suggestions ⇒ Array<String>? (readonly)
An array of suggestions from DidYouMean.
73 74 75 |
# File 'lib/toys/arg_parser.rb', line 73 def suggestions @suggestions end |
#value ⇒ String? (readonly)
The value that was rejected.
65 66 67 |
# File 'lib/toys/arg_parser.rb', line 65 def value @value end |
Instance Method Details
#message_with_suggestions ⇒ String Also known as: to_s
A fully formatted error message including suggestions.
80 81 82 83 84 85 86 87 |
# File 'lib/toys/arg_parser.rb', line 80 def if suggestions && !suggestions.empty? alts_str = suggestions.join("\n ") "#{@message}\nDid you mean... #{alts_str}" else @message end end |