Method: JSONSchemer::Draft201909::Vocab::Core::RecursiveRef#validate

Defined in:
lib/json_schemer/draft201909/vocab/core.rb

#validate(instance, instance_location, keyword_location, context) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/json_schemer/draft201909/vocab/core.rb', line 27

def validate(instance, instance_location, keyword_location, context)
  schema = ref_schema

  if recursive_anchor
    context.dynamic_scope.each do |ancestor|
      if ancestor.root.resources.fetch(:dynamic).key?(ancestor.base_uri)
        schema = ancestor.root.resources.fetch(:dynamic).fetch(ancestor.base_uri)
        break
      end
    end
  end

  schema.validate_instance(instance, instance_location, keyword_location, context)
end