class GraphQL::StaticValidation::BaseVisitor

def self.including_rules(rules)

Returns:
  • (Class) - A class for validating `rules` during visitation

Parameters:
  • rules (Array) --
def self.including_rules(rules)
  if rules.empty?
    # It's not doing _anything?!?_
    BaseVisitor
  elsif rules == ALL_RULES
    InterpreterVisitor
  else
    visitor_class = Class.new(self) do
      include(GraphQL::StaticValidation::DefinitionDependencies)
    end
    rules.reverse_each do |r|
      # If it's a class, it gets attached later.
      if !r.is_a?(Class)
        visitor_class.include(r)
      end
    end
    visitor_class.include(ContextMethods)
    visitor_class
  end
end

def add_error(error, path: nil)

def add_error(error, path: nil)
  if @context.too_many_errors?
    throw :too_many_validation_errors
  end
  error.path ||= (path || @path.dup)
  context.errors << error
end

def initialize(document, context)

def initialize(document, context)
  @path = []
  @object_types = []
  @directives = []
  @field_definitions = []
  @argument_definitions = []
  @directive_definitions = []
  @context = context
  @schema = context.schema
  super(document)
end

def path

Returns:
  • (Array) - The nesting of the current position in the AST
def path
  @path.dup
end