Class: GraphQL::Query::Context
- Inherits:
-
Object
- Object
- GraphQL::Query::Context
- Extended by:
- Forwardable
- Includes:
- SharedMethods
- Defined in:
- lib/graphql/query/context.rb
Overview
Expose some query-specific info to field resolve functions.
It delegates []
to the hash that’s passed to GraphQL::Query#initialize
.
Defined Under Namespace
Modules: SharedMethods Classes: ExecutionErrors, FieldResolutionContext
Instance Attribute Summary collapse
-
#errors ⇒ Array<GraphQL::ExecutionError>
readonly
Errors returned during execution.
-
#execution_strategy ⇒ Object
(also: #strategy)
Returns the value of attribute execution_strategy.
-
#path ⇒ Array<String, Integer>
readonly
The current position in the result.
-
#query ⇒ GraphQL::Query
readonly
The query whose context this is.
-
#schema ⇒ GraphQL::Schema
readonly
-
#value ⇒ Object
writeonly
private
Attributes included from SharedMethods
Instance Method Summary collapse
-
#[](key) ⇒ Object
Lookup
key
from the hash passed to Schema#execute ascontext:
. -
#[]=(key, value) ⇒ Object
Reassign
key
to the hash passed to Schema#execute ascontext:
. -
#ast_node ⇒ GraphQL::Language::Nodes::Field
The AST node for the currently-executing field.
-
#initialize(query:, values:, object:) ⇒ Context
constructor
Make a new context which delegates key lookup to
values
. -
#inspect ⇒ Object
-
#irep_node ⇒ GraphQL::InternalRepresentation::Node
The internal representation for this query node.
-
#namespace(ns) ⇒ Hash
Get an isolated hash for
ns
. -
#received_null_child ⇒ Object
private
-
#warden ⇒ GraphQL::Schema::Warden
Methods included from SharedMethods
#add_error, #backtrace, #delete, #execution_errors, #invalid_null?, #lookahead, #skip, #spawn_child
Constructor Details
#initialize(query:, values:, object:) ⇒ Context
Make a new context which delegates key lookup to values
146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'lib/graphql/query/context.rb', line 146 def initialize(query:, values: , object:) @query = query @schema = query.schema @provided_values = values || {} @object = object # Namespaced storage, where user-provided values are in `nil` namespace: @storage = Hash.new { |h, k| h[k] = {} } @storage[nil] = @provided_values @errors = [] @path = [] @value = nil @context = self # for SharedMethods end |
Instance Attribute Details
#errors ⇒ Array<GraphQL::ExecutionError> (readonly)
Returns errors returned during execution
132 133 134 |
# File 'lib/graphql/query/context.rb', line 132 def errors @errors end |
#execution_strategy ⇒ Object Also known as: strategy
Returns the value of attribute execution_strategy
110 111 112 |
# File 'lib/graphql/query/context.rb', line 110 def execution_strategy @execution_strategy end |
#path ⇒ Array<String, Integer> (readonly)
Returns The current position in the result
141 142 143 |
# File 'lib/graphql/query/context.rb', line 141 def path @path end |
#query ⇒ GraphQL::Query (readonly)
Returns The query whose context this is
135 136 137 |
# File 'lib/graphql/query/context.rb', line 135 def query @query end |
#schema ⇒ GraphQL::Schema (readonly)
138 139 140 |
# File 'lib/graphql/query/context.rb', line 138 def schema @schema end |
#value=(value) ⇒ Object (writeonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
161 162 163 |
# File 'lib/graphql/query/context.rb', line 161 def value=(value) @value = value end |
Instance Method Details
#[](key) ⇒ Object
Lookup key
from the hash passed to Schema#execute as context:
|
# File 'lib/graphql/query/context.rb', line 166
|
#[]=(key, value) ⇒ Object
Reassign key
to the hash passed to Schema#execute as context:
|
# File 'lib/graphql/query/context.rb', line 169
|
#ast_node ⇒ GraphQL::Language::Nodes::Field
Returns The AST node for the currently-executing field
127 128 129 |
# File 'lib/graphql/query/context.rb', line 127 def ast_node @irep_node.ast_node end |
#inspect ⇒ Object
185 186 187 |
# File 'lib/graphql/query/context.rb', line 185 def inspect "#<Query::Context ...>" end |
#irep_node ⇒ GraphQL::InternalRepresentation::Node
Returns The internal representation for this query node
122 123 124 |
# File 'lib/graphql/query/context.rb', line 122 def irep_node @irep_node ||= query.irep_selection end |
#namespace(ns) ⇒ Hash
Get an isolated hash for ns
. Doesn’t affect user-provided storage.
181 182 183 |
# File 'lib/graphql/query/context.rb', line 181 def namespace(ns) @storage[ns] end |
#received_null_child ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
190 191 192 193 |
# File 'lib/graphql/query/context.rb', line 190 def received_null_child @invalid_null = true @value = nil end |
#warden ⇒ GraphQL::Schema::Warden
174 175 176 |
# File 'lib/graphql/query/context.rb', line 174 def warden @warden ||= @query.warden end |