Class: JSI::Validation::FullResult
- Defined in:
- lib/jsi/validation/result.rb,
lib/jsi/validation/result.rb
Overview
a full result of validating an instance against its schemas, with each validation error
Instance Attribute Summary collapse
-
#schema_issues ⇒ Object
readonly
Returns the value of attribute schema_issues.
-
#validation_errors ⇒ Object
readonly
Returns the value of attribute validation_errors.
Instance Method Summary collapse
- #freeze ⇒ Object
-
#initialize ⇒ FullResult
constructor
A new instance of FullResult.
- #jsi_fingerprint ⇒ Object private
- #merge(result) ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize ⇒ FullResult
Returns a new instance of FullResult.
117 118 119 120 |
# File 'lib/jsi/validation/result.rb', line 117 def initialize @validation_errors = Set.new @schema_issues = Set.new end |
Instance Attribute Details
#schema_issues ⇒ Object (readonly)
Returns the value of attribute schema_issues.
123 124 125 |
# File 'lib/jsi/validation/result.rb', line 123 def schema_issues @schema_issues end |
#validation_errors ⇒ Object (readonly)
Returns the value of attribute validation_errors.
122 123 124 |
# File 'lib/jsi/validation/result.rb', line 122 def validation_errors @validation_errors end |
Instance Method Details
#freeze ⇒ Object
129 130 131 132 133 134 |
# File 'lib/jsi/validation/result.rb', line 129 def freeze @schema_issues.each(&:freeze) @validation_errors.freeze @schema_issues.freeze super end |
#jsi_fingerprint ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
147 148 149 150 151 152 153 |
# File 'lib/jsi/validation/result.rb', line 147 def jsi_fingerprint { class: self.class, validation_errors: validation_errors, schema_issues: schema_issues, }.freeze end |
#merge(result) ⇒ Object
136 137 138 139 140 141 142 143 |
# File 'lib/jsi/validation/result.rb', line 136 def merge(result) unless result.is_a?(FullResult) raise(TypeError, "not a #{FullResult.name}: #{result.pretty_inspect.chomp}") end validation_errors.merge(result.validation_errors) schema_issues.merge(result.schema_issues) self end |
#valid? ⇒ Boolean
125 126 127 |
# File 'lib/jsi/validation/result.rb', line 125 def valid? validation_errors.empty? end |