Class: GQL::Executor

Inherits:
Object
  • Object
show all
Defined in:
lib/gql/executor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ast_root) ⇒ Executor

Returns a new instance of Executor.



5
6
7
8
# File 'lib/gql/executor.rb', line 5

def initialize(ast_root)
  @ast_node   = ast_root.node
  @variables  = ast_root.variables
end

Instance Attribute Details

#ast_nodeObject (readonly)

Returns the value of attribute ast_node.



3
4
5
# File 'lib/gql/executor.rb', line 3

def ast_node
  @ast_node
end

#variablesObject (readonly)

Returns the value of attribute variables.



3
4
5
# File 'lib/gql/executor.rb', line 3

def variables
  @variables
end

Instance Method Details

#execute(context = {}) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/gql/executor.rb', line 10

def execute(context = {})
  node_class = GQL.root_node_class

  raise Errors::UndefinedRoot if node_class.nil?

  node = node_class.new(ast_node, nil, variables, context)
  node.value
end