Class: Uniword::Validation::LayerValidationResult
- Inherits:
-
Object
- Object
- Uniword::Validation::LayerValidationResult
- Defined in:
- lib/uniword/validation/layer_validation_result.rb
Overview
Represents the result of validating a single layer of document structure.
Responsibility: Store validation outcome for one layer (file, ZIP, XML, etc.) Single Responsibility: Only represents layer validation results.
A layer validation result includes:
-
Layer name
-
Collection of errors (critical and non-critical)
-
Collection of warnings
-
Collection of info messages
Instance Attribute Summary collapse
-
#errors ⇒ Array<Hash>
readonly
Collection of errors.
-
#infos ⇒ Array<Hash>
readonly
Collection of info messages.
-
#layer_name ⇒ String
readonly
Name of the validation layer.
-
#warnings ⇒ Array<Hash>
readonly
Collection of warnings.
Instance Method Summary collapse
-
#add_error(message, critical: false) ⇒ LayerValidationResult
Add an error to this layer’s results.
-
#add_info(message) ⇒ LayerValidationResult
Add an info message to this layer’s results.
-
#add_warning(message) ⇒ LayerValidationResult
Add a warning to this layer’s results.
-
#critical_failures? ⇒ Boolean
Check if this layer has critical failures.
-
#error_count ⇒ Integer
Get count of errors.
-
#info_count ⇒ Integer
Get count of info messages.
-
#initialize(layer_name) ⇒ LayerValidationResult
constructor
Initialize a new LayerValidationResult.
-
#to_h ⇒ Hash
Convert to hash representation.
-
#to_s ⇒ String
Convert to string for display.
-
#valid? ⇒ Boolean
Check if this layer validation passed.
-
#warning_count ⇒ Integer
Get count of warnings.
Constructor Details
#initialize(layer_name) ⇒ LayerValidationResult
Initialize a new LayerValidationResult.
39 40 41 42 43 44 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 39 def initialize(layer_name) @layer_name = layer_name @errors = [] @warnings = [] @infos = [] end |
Instance Attribute Details
#errors ⇒ Array<Hash> (readonly)
Returns Collection of errors.
25 26 27 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 25 def errors @errors end |
#infos ⇒ Array<Hash> (readonly)
Returns Collection of info messages.
31 32 33 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 31 def infos @infos end |
#layer_name ⇒ String (readonly)
Returns Name of the validation layer.
22 23 24 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 22 def layer_name @layer_name end |
#warnings ⇒ Array<Hash> (readonly)
Returns Collection of warnings.
28 29 30 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 28 def warnings @warnings end |
Instance Method Details
#add_error(message, critical: false) ⇒ LayerValidationResult
Add an error to this layer’s results.
54 55 56 57 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 54 def add_error(, critical: false) @errors << { message: , critical: critical } self end |
#add_info(message) ⇒ LayerValidationResult
Add an info message to this layer’s results.
78 79 80 81 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 78 def add_info() @infos << { message: } self end |
#add_warning(message) ⇒ LayerValidationResult
Add a warning to this layer’s results.
66 67 68 69 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 66 def add_warning() @warnings << { message: } self end |
#critical_failures? ⇒ Boolean
Check if this layer has critical failures.
99 100 101 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 99 def critical_failures? @errors.any? { |error| error[:critical] } end |
#error_count ⇒ Integer
Get count of errors.
106 107 108 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 106 def error_count @errors.count end |
#info_count ⇒ Integer
Get count of info messages.
120 121 122 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 120 def info_count @infos.count end |
#to_h ⇒ Hash
Convert to hash representation.
131 132 133 134 135 136 137 138 139 140 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 131 def to_h { layer: @layer_name, valid: valid?, critical_failures: critical_failures?, errors: @errors, warnings: @warnings, infos: @infos, } end |
#to_s ⇒ String
Convert to string for display.
145 146 147 148 149 150 151 152 153 154 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 145 def to_s status = valid? ? "PASS" : "FAIL" details = [] details << "#{error_count} error(s)" if error_count.positive? details << "#{warning_count} warning(s)" if warning_count.positive? details << "#{info_count} info(s)" if info_count.positive? detail_str = details.empty? ? "" : " (#{details.join(', ')})" "[#{status}] #{@layer_name}#{detail_str}" end |
#valid? ⇒ Boolean
Check if this layer validation passed.
89 90 91 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 89 def valid? @errors.empty? end |
#warning_count ⇒ Integer
Get count of warnings.
113 114 115 |
# File 'lib/uniword/validation/layer_validation_result.rb', line 113 def warning_count @warnings.count end |