Class: JSI::Validation::FullResult

Inherits:
Result
  • Object
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

Constructor Details

#initializeFullResult

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_issuesObject (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_errorsObject (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

#freezeObject



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_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



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

Returns:

  • (Boolean)


125
126
127
# File 'lib/jsi/validation/result.rb', line 125

def valid?
  validation_errors.empty?
end