Class: GraphQL::StaticValidation::ValidationContext
- Inherits:
 - 
      Object
      
        
- Object
 - GraphQL::StaticValidation::ValidationContext
 
 
- Extended by:
 - Forwardable
 
- Defined in:
 - lib/graphql/static_validation/validation_context.rb
 
Overview
The validation context gets passed to each validator.
It exposes a Language::Visitor where validators may add hooks. (Language::Visitor#visit is called in GraphQL::StaticValidation::Validator#validate)
It provides access to the schema & fragments which validators may read from.
It holds a list of errors which each validator may add to.
Instance Attribute Summary collapse
- 
  
    
      #errors  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute errors.
 - 
  
    
      #max_errors  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute max_errors.
 - 
  
    
      #on_dependency_resolve_handlers  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute on_dependency_resolve_handlers.
 - 
  
    
      #query  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute query.
 - 
  
    
      #schema  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute schema.
 - 
  
    
      #types  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute types.
 - 
  
    
      #visitor  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute visitor.
 
Instance Method Summary collapse
- 
  
    
      #initialize(query, visitor_class, max_errors)  ⇒ ValidationContext 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of ValidationContext.
 - 
  
    
      #on_dependency_resolve(&handler)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #schema_directives  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #too_many_errors?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #validate_literal(ast_value, type)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 
Constructor Details
#initialize(query, visitor_class, max_errors) ⇒ ValidationContext
Returns a new instance of ValidationContext.
      21 22 23 24 25 26 27 28 29 30  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 21 def initialize(query, visitor_class, max_errors) @query = query @types = query.types # TODO update migrated callers to use this accessor @schema = query.schema @literal_validator = LiteralValidator.new(context: query.context) @errors = [] @max_errors = max_errors || Float::INFINITY @on_dependency_resolve_handlers = [] @visitor = visitor_class.new(document, self) end  | 
  
Instance Attribute Details
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def errors @errors end  | 
  
#max_errors ⇒ Object (readonly)
Returns the value of attribute max_errors.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def max_errors @max_errors end  | 
  
#on_dependency_resolve_handlers ⇒ Object (readonly)
Returns the value of attribute on_dependency_resolve_handlers.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def on_dependency_resolve_handlers @on_dependency_resolve_handlers end  | 
  
#query ⇒ Object (readonly)
Returns the value of attribute query.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def query @query end  | 
  
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def schema @schema end  | 
  
#types ⇒ Object (readonly)
Returns the value of attribute types.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def types @types end  | 
  
#visitor ⇒ Object (readonly)
Returns the value of attribute visitor.
      14 15 16  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 14 def visitor @visitor end  | 
  
Instance Method Details
#on_dependency_resolve(&handler) ⇒ Object
      36 37 38  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 36 def on_dependency_resolve(&handler) @on_dependency_resolve_handlers << handler end  | 
  
#schema_directives ⇒ Object
      48 49 50  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 48 def schema_directives @schema_directives ||= schema.directives end  | 
  
#too_many_errors? ⇒ Boolean
      44 45 46  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 44 def too_many_errors? @errors.length >= @max_errors end  | 
  
#validate_literal(ast_value, type) ⇒ Object
      40 41 42  | 
    
      # File 'lib/graphql/static_validation/validation_context.rb', line 40 def validate_literal(ast_value, type) @literal_validator.validate(ast_value, type) end  |