Class: Uniword::Validation::ValidationResult
- Inherits:
-
Object
- Object
- Uniword::Validation::ValidationResult
- Defined in:
- lib/uniword/validation/validation_result.rb
Overview
Represents the result of validating a single link or reference.
Responsibility: Store validation outcome for a single link check. Single Responsibility: Only represents validation results.
A validation result includes:
-
Status (success, failure, warning)
-
The link being validated
-
Error message if validation failed
-
Optional metadata
Instance Attribute Summary collapse
-
#link ⇒ Object
readonly
The link or reference being validated.
-
#message ⇒ String?
readonly
Error or warning message.
-
#metadata ⇒ Hash
readonly
Additional metadata.
-
#status ⇒ Symbol
readonly
Status of validation (:success, :failure, :warning).
Class Method Summary collapse
-
.failure(link, message, metadata: {}) ⇒ ValidationResult
Factory method: Create a failure result.
-
.success(link, metadata: {}) ⇒ ValidationResult
Factory method: Create a success result.
-
.unknown(link, message = "No checker available", metadata: {}) ⇒ ValidationResult
Factory method: Create an unknown/skipped result.
-
.warning(link, message, metadata: {}) ⇒ ValidationResult
Factory method: Create a warning result.
Instance Method Summary collapse
-
#error_message ⇒ String?
Get error message (alias for message).
-
#failure? ⇒ Boolean
Check if validation failed.
-
#initialize(status:, link:, message: nil, metadata: {}) ⇒ ValidationResult
constructor
Initialize a new ValidationResult.
-
#inspect ⇒ String
Detailed inspection for debugging.
-
#link_identifier ⇒ String
Get the link identifier (URL, anchor, etc.).
-
#to_h ⇒ Hash
Convert to hash representation.
-
#to_s ⇒ String
Convert to string for display.
-
#unknown? ⇒ Boolean
Check if validation status is unknown.
-
#valid? ⇒ Boolean
Check if validation was successful.
-
#warning? ⇒ Boolean
Check if validation produced a warning.
Constructor Details
#initialize(status:, link:, message: nil, metadata: {}) ⇒ ValidationResult
Initialize a new ValidationResult.
50 51 52 53 54 55 |
# File 'lib/uniword/validation/validation_result.rb', line 50 def initialize(status:, link:, message: nil, metadata: {}) @status = status @link = link @message = @metadata = || {} end |
Instance Attribute Details
#link ⇒ Object (readonly)
Returns The link or reference being validated.
29 30 31 |
# File 'lib/uniword/validation/validation_result.rb', line 29 def link @link end |
#message ⇒ String? (readonly)
Returns Error or warning message.
32 33 34 |
# File 'lib/uniword/validation/validation_result.rb', line 32 def @message end |
#metadata ⇒ Hash (readonly)
Returns Additional metadata.
35 36 37 |
# File 'lib/uniword/validation/validation_result.rb', line 35 def @metadata end |
#status ⇒ Symbol (readonly)
Returns Status of validation (:success, :failure, :warning).
26 27 28 |
# File 'lib/uniword/validation/validation_result.rb', line 26 def status @status end |
Class Method Details
.failure(link, message, metadata: {}) ⇒ ValidationResult
Factory method: Create a failure result.
78 79 80 |
# File 'lib/uniword/validation/validation_result.rb', line 78 def self.failure(link, , metadata: {}) new(status: :failure, link: link, message: , metadata: ) end |
.success(link, metadata: {}) ⇒ ValidationResult
Factory method: Create a success result.
65 66 67 |
# File 'lib/uniword/validation/validation_result.rb', line 65 def self.success(link, metadata: {}) new(status: :success, link: link, metadata: ) end |
.unknown(link, message = "No checker available", metadata: {}) ⇒ ValidationResult
Factory method: Create an unknown/skipped result.
104 105 106 |
# File 'lib/uniword/validation/validation_result.rb', line 104 def self.unknown(link, = "No checker available", metadata: {}) new(status: :unknown, link: link, message: , metadata: ) end |
.warning(link, message, metadata: {}) ⇒ ValidationResult
Factory method: Create a warning result.
91 92 93 |
# File 'lib/uniword/validation/validation_result.rb', line 91 def self.warning(link, , metadata: {}) new(status: :warning, link: link, message: , metadata: ) end |
Instance Method Details
#error_message ⇒ String?
Get error message (alias for message).
174 175 176 |
# File 'lib/uniword/validation/validation_result.rb', line 174 def @message end |
#failure? ⇒ Boolean
Check if validation failed.
124 125 126 |
# File 'lib/uniword/validation/validation_result.rb', line 124 def failure? @status == :failure end |
#inspect ⇒ String
Detailed inspection for debugging.
209 210 211 212 |
# File 'lib/uniword/validation/validation_result.rb', line 209 def inspect "#<ValidationResult status=#{@status} link=#{link_identifier.inspect} " \ "message=#{@message.inspect}>" end |
#link_identifier ⇒ String
Get the link identifier (URL, anchor, etc.).
154 155 156 157 158 159 160 161 162 163 164 165 166 |
# File 'lib/uniword/validation/validation_result.rb', line 154 def link_identifier if @link.respond_to?(:url) && @link.url @link.url elsif @link.respond_to?(:anchor) && @link.anchor "##{@link.anchor}" elsif @link.respond_to?(:id) @link.id.to_s elsif @link.respond_to?(:name) @link.name else @link.to_s end end |
#to_h ⇒ Hash
Convert to hash representation.
184 185 186 187 188 189 190 191 |
# File 'lib/uniword/validation/validation_result.rb', line 184 def to_h { status: @status, link: link_identifier, message: @message, metadata: @metadata, }.compact end |
#to_s ⇒ String
Convert to string for display.
199 200 201 202 203 204 |
# File 'lib/uniword/validation/validation_result.rb', line 199 def to_s status_str = @status.to_s.upcase link_str = link_identifier msg_str = @message ? ": #{@message}" : "" "[#{status_str}] #{link_str}#{msg_str}" end |
#unknown? ⇒ Boolean
Check if validation status is unknown.
144 145 146 |
# File 'lib/uniword/validation/validation_result.rb', line 144 def unknown? @status == :unknown end |
#valid? ⇒ Boolean
Check if validation was successful.
114 115 116 |
# File 'lib/uniword/validation/validation_result.rb', line 114 def valid? @status == :success end |
#warning? ⇒ Boolean
Check if validation produced a warning.
134 135 136 |
# File 'lib/uniword/validation/validation_result.rb', line 134 def warning? @status == :warning end |