Class: GraphQL::Client::Definition

Inherits:
Module
  • Object
show all
Defined in:
lib/graphql/client.rb

Direct Known Subclasses

FragmentDefinition, OperationDefinition

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(node:) ⇒ Definition

Returns a new instance of Definition.



24
25
26
# File 'lib/graphql/client.rb', line 24

def initialize(node:)
  @definition_node = node
end

Instance Attribute Details

#definition_nodeObject (readonly)

Internal: Get underlying operation or fragment defintion AST node for definition.

Returns OperationDefinition or FragmentDefinition object.



32
33
34
# File 'lib/graphql/client.rb', line 32

def definition_node
  @definition_node
end

Instance Method Details

#definition_nameObject

Public: Global name of definition in client document.

Returns a GraphQL safe name of the Ruby constant String.

"Users::UserQuery" #=> "Users__UserQuery"

Returns String.



48
49
50
# File 'lib/graphql/client.rb', line 48

def definition_name
  @definition_name ||= name.gsub("::", "__").freeze
end

#nameObject

Public: Ruby constant name of definition.

Returns String or errors if definition was not assigned to a constant.



37
38
39
# File 'lib/graphql/client.rb', line 37

def name
  @name ||= super || raise(RuntimeError, "definition must be assigned to a constant")
end

#new(*args) ⇒ Object



52
53
54
# File 'lib/graphql/client.rb', line 52

def new(*args)
  query_result_class.new(*args)
end