Class: GraphQL::Query::SerialExecution

Inherits:
Object
  • Object
show all
Defined in:
lib/graphql/query/serial_execution.rb,
lib/graphql/query/serial_execution/field_resolution.rb,
lib/graphql/query/serial_execution/value_resolution.rb,
lib/graphql/query/serial_execution/operation_resolution.rb,
lib/graphql/query/serial_execution/selection_resolution.rb

Defined Under Namespace

Modules: OperationResolution, SelectionResolution, ValueResolution Classes: FieldResolution

Instance Method Summary collapse

Instance Method Details

#execute(ast_operation, root_type, query_object) ⇒ Hash

This is the only required method for an Execution strategy. You could create a custom execution strategy and configure your schema to use that custom strategy instead.

Parameters:

Returns:

  • (Hash)

    a spec-compliant GraphQL result, as a hash



18
19
20
21
22
23
24
25
# File 'lib/graphql/query/serial_execution.rb', line 18

def execute(ast_operation, root_type, query_object)
  GraphQL::Deprecation.warn "#{self.class} will be removed in GraphQL-Ruby 2.0, please upgrade to the Interpreter: https://graphql-ruby.org/queries/interpreter.html"
  operation_resolution.resolve(
    query_object.irep_selection,
    root_type,
    query_object
  )
end

#field_resolutionObject



27
28
29
# File 'lib/graphql/query/serial_execution.rb', line 27

def field_resolution
  self.class::FieldResolution
end

#operation_resolutionObject



31
32
33
# File 'lib/graphql/query/serial_execution.rb', line 31

def operation_resolution
  self.class::OperationResolution
end

#selection_resolutionObject



35
36
37
# File 'lib/graphql/query/serial_execution.rb', line 35

def selection_resolution
  self.class::SelectionResolution
end