Class: GraphQL::Client::Definition
- Inherits:
-
Module
- Object
- Module
- GraphQL::Client::Definition
- Defined in:
- lib/graphql/client.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#definition_node ⇒ Object
readonly
Internal: Get underlying operation or fragment defintion AST node for definition.
-
#document ⇒ Object
readonly
Public: Get document with only the definitions needed to perform this operation.
Class Method Summary collapse
Instance Method Summary collapse
-
#definition_name ⇒ Object
Public: Global name of definition in client document.
-
#initialize(node:, document:) ⇒ Definition
constructor
A new instance of Definition.
- #new(*args) ⇒ Object
Constructor Details
#initialize(node:, document:) ⇒ Definition
Returns a new instance of Definition.
43 44 45 46 |
# File 'lib/graphql/client.rb', line 43 def initialize(node:, document:) @definition_node = node @document = document end |
Instance Attribute Details
#definition_node ⇒ Object (readonly)
Internal: Get underlying operation or fragment defintion AST node for definition.
Returns OperationDefinition or FragmentDefinition object.
52 53 54 |
# File 'lib/graphql/client.rb', line 52 def definition_node @definition_node end |
#document ⇒ Object (readonly)
Public: Get document with only the definitions needed to perform this operation.
Returns GraphQL::Language::Nodes::Document with one OperationDefinition and any FragmentDefinition dependencies.
70 71 72 |
# File 'lib/graphql/client.rb', line 70 def document @document end |
Class Method Details
.for(node:, **kargs) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/graphql/client.rb', line 32 def self.for(node:, **kargs) case node when Language::Nodes::OperationDefinition OperationDefinition.new(node: node, **kargs) when Language::Nodes::FragmentDefinition FragmentDefinition.new(node: node, **kargs) else raise TypeError, "expected node to be a definition type, but was #{node.class}" end end |
Instance Method Details
#definition_name ⇒ Object
Public: Global name of definition in client document.
Returns a GraphQL safe name of the Ruby constant String.
"Users::UserQuery" #=> "Users__UserQuery"
Returns String.
61 62 63 |
# File 'lib/graphql/client.rb', line 61 def definition_name @definition_name ||= (name || "#{self.class.name}_#{object_id}").gsub("::", "__").freeze end |
#new(*args) ⇒ Object
72 73 74 |
# File 'lib/graphql/client.rb', line 72 def new(*args) query_result_class.new(*args) end |