Class: GQL::Array

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

Instance Attribute Summary

Attributes inherited from Node

#ast_node, #context, #target, #variables

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Node

#initialize, #raw_value, validate_is_subclass!

Constructor Details

This class inherits a constructor from GQL::Node

Class Method Details

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



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/gql/array.rb', line 8

def build_class(id, proc, options = {})
  item_class = options.delete(:item_class) || self.item_class

  if item_class.is_a?(Hash)
    item_class.values.each do |klass|
      Node.validate_is_subclass! klass, 'item'
    end
  else
    Node.validate_is_subclass! item_class, 'item'
    item_class = Hash.new(item_class)
  end

  Class.new(self).tap do |field_class|
    field_class.id = id.to_s
    field_class.proc = proc
    field_class.item_class = item_class
  end
end

Instance Method Details

#valueObject



28
29
30
31
32
33
# File 'lib/gql/array.rb', line 28

def value
  target.map do |item|
    node = self.class.item_class[item.class].new(ast_node, item, variables, context)
    node.value
  end
end