Class: Lutaml::Xsd::Errors::Suggestion
- Inherits:
-
Object
- Object
- Lutaml::Xsd::Errors::Suggestion
- Defined in:
- lib/lutaml/xsd/errors/suggestion.rb
Overview
Value object representing a suggestion for error resolution
Instance Attribute Summary collapse
-
#explanation ⇒ String
readonly
Explanation of the suggestion.
-
#similarity ⇒ Float
readonly
Similarity score (0.0 to 1.0).
-
#text ⇒ String
readonly
The suggestion text.
Instance Method Summary collapse
-
#<=>(other) ⇒ Integer
Compare suggestions by similarity (higher is better).
-
#initialize(text:, similarity: 1.0, explanation: nil) ⇒ Suggestion
constructor
Initialize a suggestion.
-
#similarity_percentage ⇒ Integer
Get similarity percentage.
-
#to_h ⇒ Hash
Convert to hash.
Constructor Details
#initialize(text:, similarity: 1.0, explanation: nil) ⇒ Suggestion
Initialize a suggestion
29 30 31 32 33 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 29 def initialize(text:, similarity: 1.0, explanation: nil) @text = text @similarity = similarity.to_f @explanation = explanation || "Did you mean '#{text}'?" end |
Instance Attribute Details
#explanation ⇒ String (readonly)
Returns Explanation of the suggestion.
22 23 24 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 22 def explanation @explanation end |
#similarity ⇒ Float (readonly)
Returns Similarity score (0.0 to 1.0).
19 20 21 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 19 def similarity @similarity end |
#text ⇒ String (readonly)
Returns The suggestion text.
16 17 18 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 16 def text @text end |
Instance Method Details
#<=>(other) ⇒ Integer
Compare suggestions by similarity (higher is better)
57 58 59 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 57 def <=>(other) other.similarity <=> @similarity end |
#similarity_percentage ⇒ Integer
Get similarity percentage
38 39 40 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 38 def similarity_percentage (@similarity * 100).round end |
#to_h ⇒ Hash
Convert to hash
45 46 47 48 49 50 51 |
# File 'lib/lutaml/xsd/errors/suggestion.rb', line 45 def to_h { text: @text, similarity: @similarity, explanation: @explanation, } end |