Class: GQL::Node

Inherits:
Object
  • Object
show all
Includes:
HasCalls, HasFields
Defined in:
lib/gql/node.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ast_node, target, variables, context) ⇒ Node

Returns a new instance of Node.



34
35
36
37
# File 'lib/gql/node.rb', line 34

def initialize(ast_node, target, variables, context)
  @ast_node, @target = ast_node, target
  @variables, @context = variables, context
end

Instance Attribute Details

#ast_nodeObject (readonly)

Returns the value of attribute ast_node.



32
33
34
# File 'lib/gql/node.rb', line 32

def ast_node
  @ast_node
end

#contextObject (readonly)

Returns the value of attribute context.



32
33
34
# File 'lib/gql/node.rb', line 32

def context
  @context
end

#targetObject (readonly)

Returns the value of attribute target.



32
33
34
# File 'lib/gql/node.rb', line 32

def target
  @target
end

#variablesObject (readonly)

Returns the value of attribute variables.



32
33
34
# File 'lib/gql/node.rb', line 32

def variables
  @variables
end

Class Method Details

.build_class(id, proc, options = {}) ⇒ Object



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

def build_class(id, proc, options = {})
  Class.new(self).tap do |field_class|
    field_class.id = id.to_s
    field_class.proc = proc
  end
end

.validate_is_subclass!(subclass, name) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/gql/node.rb', line 18

def validate_is_subclass!(subclass, name)
  if subclass.nil?
    raise Errors::UndefinedNodeClass.new(self, name)
  end

  unless subclass <= self
    raise Errors::InvalidNodeClass.new(subclass, self)
  end
end

Instance Method Details

#raw_valueObject



49
50
51
# File 'lib/gql/node.rb', line 49

def raw_value
  nil
end

#valueObject



39
40
41
42
43
44
45
46
47
# File 'lib/gql/node.rb', line 39

def value
  if ast_call = ast_node.call
    value_of_call ast_call
  elsif ast_fields = ast_node.fields
    value_of_fields ast_fields
  else
    raw_value
  end
end