class GraphQL::Language::OperationDefinition

Overview

A query, mutation or subscription. May be anonymous or named. May be explicitly typed (eg mutation { ... }) or implicitly a query (eg { ... }).

Defined in:

graphql/language/nodes.cr

Constant Summary

VALUES = [{operation_type, String}, {name, ::Union(String, ::Nil)}, {variables, Array(VariableDefinition)}, {directives, Array(Directive)}, {selections, Array(Selection)}] of Tuple(Symbol, Object.class)

A query, mutation or subscription. May be anonymous or named. May be explicitly typed (eg mutation { ... }) or implicitly a query (eg { ... }).

VISITS = [{:children, [:variables, :directives, :selections]}] of Tuple(Symbol, Array(Symbol))

A query, mutation or subscription. May be anonymous or named. May be explicitly typed (eg mutation { ... }) or implicitly a query (eg { ... }).

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(operation_type, name, variables, directives, selections, **rest) #

Class Method Detail

def self.values #

Instance Method Detail


def clone #

Returns a copy of self with all instance variables cloned.


def directives : Array(Directive) #

def directives=(directives : Array(Directive)) #

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

def name : Union(String, Nil) #

def name=(name : Union(String, Nil)) #

def operation_type : String #

def operation_type=(operation_type : String) #

def selections : Array(Selection) #

def selections=(selections : Array(Selection)) #

def values #

def variables : Array(VariableDefinition) #

def variables=(variables : Array(VariableDefinition)) #

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) #