Class: SecureKeys::Validation::ValidationResult
- Inherits:
-
Object
- Object
- SecureKeys::Validation::ValidationResult
- Defined in:
- lib/validation/validation_result.rb
Overview
Encapsulates the result of validating a single secret value
Instance Attribute Summary collapse
-
#detected_type ⇒ Object
readonly
Returns the value of attribute detected_type.
-
#issues ⇒ Object
readonly
Returns the value of attribute issues.
-
#key ⇒ Object
readonly
Returns the value of attribute key.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Instance Method Summary collapse
-
#critical? ⇒ Boolean
Check if any critical-severity issues were found.
-
#errors? ⇒ Boolean
Check if any error-severity issues were found.
-
#initialize(key:, value:, issues:, detected_type: nil) ⇒ ValidationResult
constructor
Initialize a new validation result.
-
#print ⇒ Object
Prints the full validation result to the console via Logger.
-
#severity_level ⇒ Symbol
Returns the highest severity level across all issues.
-
#summary ⇒ String
Returns a one-line summary of the validation outcome.
-
#to_h ⇒ Hash
Returns a hash representation of the validation result.
-
#valid? ⇒ Boolean
Check if validation passed with no errors or critical issues.
-
#warnings? ⇒ Boolean
Check if any warning-severity issues were found.
Constructor Details
#initialize(key:, value:, issues:, detected_type: nil) ⇒ ValidationResult
Initialize a new validation result
22 23 24 25 26 27 |
# File 'lib/validation/validation_result.rb', line 22 def initialize(key:, value:, issues:, detected_type: nil) @key = key @value = value @issues = issues @detected_type = detected_type end |
Instance Attribute Details
#detected_type ⇒ Object
Returns the value of attribute detected_type.
15 16 17 |
# File 'lib/validation/validation_result.rb', line 15 def detected_type @detected_type end |
#issues ⇒ Object
Returns the value of attribute issues.
15 16 17 |
# File 'lib/validation/validation_result.rb', line 15 def issues @issues end |
#key ⇒ Object
Returns the value of attribute key.
15 16 17 |
# File 'lib/validation/validation_result.rb', line 15 def key @key end |
#value ⇒ Object
Returns the value of attribute value.
15 16 17 |
# File 'lib/validation/validation_result.rb', line 15 def value @value end |
Instance Method Details
#critical? ⇒ Boolean
Check if any critical-severity issues were found
37 38 39 |
# File 'lib/validation/validation_result.rb', line 37 def critical? issues.any? { |issue| issue.severity == :critical } end |
#errors? ⇒ Boolean
Check if any error-severity issues were found
43 44 45 |
# File 'lib/validation/validation_result.rb', line 43 def errors? issues.any? { |issue| issue.severity == :error } end |
#print ⇒ Object
Prints the full validation result to the console via Logger
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/validation/validation_result.rb', line 72 def print Core::Console::Logger.(message: "\nValidation Result for '#{key}':") Core::Console::Logger.(message: '-' * 70) if detected_type Core::Console::Logger.(message: "Detected Type: #{detected_type[:description]}") Core::Console::Logger.(message: "Severity: #{detected_type[:severity]}") end if issues.empty? Core::Console::Logger.success(message: '✅ No issues found') else Core::Console::Logger.(message: '') issues.each { |issue| Core::Console::Logger.(message: " #{issue}") } end Core::Console::Logger.(message: '-' * 70) end |
#severity_level ⇒ Symbol
Returns the highest severity level across all issues
55 56 57 58 59 60 61 |
# File 'lib/validation/validation_result.rb', line 55 def severity_level return :critical if critical? return :error if errors? return :warning if warnings? :ok end |
#summary ⇒ String
Returns a one-line summary of the validation outcome
65 66 67 68 69 |
# File 'lib/validation/validation_result.rb', line 65 def summary return "✅ '#{key}' passed validation" if valid? "#{severity_icon} '#{key}' has #{issues.length} issue(s)" end |
#to_h ⇒ Hash
Returns a hash representation of the validation result
93 94 95 96 97 98 99 100 101 |
# File 'lib/validation/validation_result.rb', line 93 def to_h { key:, valid: valid?, severity: severity_level, detected_type:, issues: issues.map(&:to_h), } end |
#valid? ⇒ Boolean
Check if validation passed with no errors or critical issues
31 32 33 |
# File 'lib/validation/validation_result.rb', line 31 def valid? !errors? && !critical? end |
#warnings? ⇒ Boolean
Check if any warning-severity issues were found
49 50 51 |
# File 'lib/validation/validation_result.rb', line 49 def warnings? issues.any? { |issue| issue.severity == :warning } end |