class GraphQL::StaticValidation::BaseVisitor
def self.including_rules(rules)
-
(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
-
(Array
- The nesting of the current position in the AST)
def path @path.dup end