Class: JSI::Validation::Result::Full
- Inherits:
-
JSI::Validation::Result
- Object
- JSI::Validation::Result
- JSI::Validation::Result::Full
- 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
- #evaluated_tokens ⇒ Set readonly
- #nested_validation_errors ⇒ Set<Validation::Error> readonly
Instance Method Summary collapse
- #each_validation_error {|Validation::Error| ... } ⇒ Object
- #freeze ⇒ Object
-
#initialize ⇒ Full
constructor
A new instance of Full.
- #jsi_fingerprint ⇒ Object private
- #merge(result) ⇒ Object
- #pretty_print(q) ⇒ Object
- #valid? ⇒ Boolean
-
#validation_errors ⇒ Object
deprecated
Deprecated.
after v0.8
Methods inherited from JSI::Validation::Result
Constructor Details
#initialize ⇒ Full
Returns a new instance of Full.
123 124 125 126 |
# File 'lib/jsi/validation/result.rb', line 123 def initialize @nested_validation_errors = Set.new @evaluated_tokens = Set.new end |
Instance Attribute Details
#evaluated_tokens ⇒ Set (readonly)
147 148 149 |
# File 'lib/jsi/validation/result.rb', line 147 def evaluated_tokens @evaluated_tokens end |
#nested_validation_errors ⇒ Set<Validation::Error> (readonly)
129 130 131 |
# File 'lib/jsi/validation/result.rb', line 129 def nested_validation_errors @nested_validation_errors end |
Instance Method Details
#each_validation_error {|Validation::Error| ... } ⇒ Object
132 133 134 135 136 137 138 |
# File 'lib/jsi/validation/result.rb', line 132 def each_validation_error(&block) return(to_enum(__method__)) if !block_given? nested_validation_errors.each do |validation_error| validation_error.each_validation_error(&block) end nil end |
#freeze ⇒ Object
153 154 155 156 157 |
# File 'lib/jsi/validation/result.rb', line 153 def freeze @nested_validation_errors.freeze @evaluated_tokens.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.
175 176 177 178 179 180 181 |
# File 'lib/jsi/validation/result.rb', line 175 def jsi_fingerprint { class: self.class, nested_validation_errors: nested_validation_errors, evaluated_tokens: evaluated_tokens, }.freeze end |
#merge(result) ⇒ Object
159 160 161 162 163 164 |
# File 'lib/jsi/validation/result.rb', line 159 def merge(result) raise(TypeError, "not a #{Result::Full}: #{result.pretty_inspect.chomp}") unless result.is_a?(Result::Full) nested_validation_errors.merge(result.nested_validation_errors) evaluated_tokens.merge(result.evaluated_tokens) self end |
#pretty_print(q) ⇒ Object
166 167 168 169 170 171 |
# File 'lib/jsi/validation/result.rb', line 166 def pretty_print(q) pretty_print_valid(q) do q.text('validation errors: ') q.pp(nested_validation_errors) end end |
#valid? ⇒ Boolean
149 150 151 |
# File 'lib/jsi/validation/result.rb', line 149 def valid? nested_validation_errors.empty? end |
#validation_errors ⇒ Object
Deprecated.
after v0.8
iterating (recursively) is better done with #each_validation_error
142 143 144 |
# File 'lib/jsi/validation/result.rb', line 142 def validation_errors each_validation_error.to_set end |