class GraphQL::Language::Document

Overview

This is the AST root for normal queries

@example Deriving a document by parsing a string document = GraphQL.parse(query_string)

Defined in:

graphql/language/nodes.cr

Constant Summary

VALUES = [{definitions, Array(OperationDefinition | FragmentDefinition | SchemaDefinition | ObjectTypeDefinition | InputObjectTypeDefinition | ScalarTypeDefinition | DirectiveDefinition | EnumTypeDefinition | InterfaceTypeDefinition | UnionTypeDefinition)}] of Tuple(Symbol, Object.class)

This is the AST root for normal queries

@example Deriving a document by parsing a string document = GraphQL.parse(query_string)

VISITS = [{:children, [:definitions]}] of Tuple(Symbol, Array(Symbol))

This is the AST root for normal queries

@example Deriving a document by parsing a string document = GraphQL.parse(query_string)

Constructors

Class Method Summary

Instance Method Summary

Macro Summary

Instance methods inherited from class GraphQL::Language::ASTNode

==(other) ==, clone clone, values values

Class methods inherited from class GraphQL::Language::ASTNode

values values

Constructor Detail

def self.new(definitions, **rest) #

Class Method Detail

def self.values #

Instance Method Detail

def ==(other : GraphQL::Language::Document) #

def clone #

Returns a copy of self with all instance variables cloned.




def map_children(&block : ASTNode -> _) #

def to_s(io : IO) #
Description copied from class Reference

Appends a short String representation of this object which includes its class name and its object address.

class Person
  def initialize(@name : String, @age : Int32)
  end
end

Person.new("John", 32).to_s # => #<Person:0x10a199f20>

[View source]
def values #

def visit(name, visited_ids = [] of UInt64, block = Proc(ASTNode, ASTNode | ::Nil).new do end) #

Recursively apply the given block to each node that gets visited with the given key which nodes get traverses for a given key can be set on a class via the: traverse :name, :child_1, :child2 macro. If no children are defined for a given traversal path name the block is invoked only with self.ode that gets visited with the given key which nodes get traverses for a given key can be set on a class via the: traverse :name, :child_1, :child2 macro. If no children are defined for a given traversal path name the block is invoked only with self.


Macro Detail

macro accessors(name, type, default) #

macro traverse(name, *values) #

macro values(args) #