Class: JSI::Validation::Result::Full

Inherits:
JSI::Validation::Result show all
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

Instance Method Summary collapse

Methods inherited from JSI::Validation::Result

#valid!

Constructor Details

#initializeFull

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_tokensSet (readonly)

Returns:

  • (Set)


147
148
149
# File 'lib/jsi/validation/result.rb', line 147

def evaluated_tokens
  @evaluated_tokens
end

#nested_validation_errorsSet<Validation::Error> (readonly)

Returns:



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

Yields:



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

#freezeObject



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_fingerprintObject

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.

see Util::Private::FingerprintHash



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

Raises:

  • (TypeError)


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

Returns:

  • (Boolean)


149
150
151
# File 'lib/jsi/validation/result.rb', line 149

def valid?
  nested_validation_errors.empty?
end

#validation_errorsObject

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