tinygql 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/tinygql/nodes.rb CHANGED
@@ -3,45 +3,62 @@ module TinyGQL
3
3
  class Node
4
4
  include Enumerable
5
5
 
6
- def document?; false; end
7
- def operation_definition?; false; end
8
- def variable?; false; end
9
- def named_type?; false; end
10
- def not_null_type?; false; end
11
- def list_type?; false; end
12
- def variable_definition?; false; end
13
- def value?; false; end
14
- def argument?; false; end
15
- def field?; false; end
16
- def object_field?; false; end
17
- def int_value?; false; end
18
- def float_value?; false; end
19
- def string_value?; false; end
20
- def boolean_value?; false; end
21
- def null_value?; false; end
22
- def enum_value?; false; end
23
- def list_value?; false; end
24
- def object_value?; false; end
25
- def directive?; false; end
26
- def type_condition?; false; end
27
- def inline_fragment?; false; end
28
- def fragment_spread?; false; end
29
- def fragment_definition?; false; end
30
- def root_operation_type_definition?; false; end
31
- def schema_definition?; false; end
32
- def field_definition?; false; end
33
- def input_value_definition?; false; end
34
- def object_type_definition?; false; end
35
- def interface_type_definition?; false; end
36
- def union_type_definition?; false; end
37
- def scalar_type_definition?; false; end
38
- def enum_value_definition?; false; end
39
- def enum_type_definition?; false; end
40
- def input_object_type_definition?; false; end
41
- def object_type_extension?; false; end
42
- def executable_directive_location?; false; end
43
- def type_system_directive_location?; false; end
44
- def directive_definition?; false; end
6
+ # `pos` is the position of the _end_ of a token
7
+ attr_reader :pos
8
+
9
+ def initialize pos
10
+ @pos = pos
11
+ end
12
+
13
+ # Return the line of this node given `doc`
14
+ def line doc
15
+ doc[0, @pos].count("\n") + 1
16
+ end
17
+
18
+ def document?; false; end
19
+ def operation_definition?; false; end
20
+ def variable?; false; end
21
+ def named_type?; false; end
22
+ def not_null_type?; false; end
23
+ def list_type?; false; end
24
+ def variable_definition?; false; end
25
+ def value?; false; end
26
+ def argument?; false; end
27
+ def field?; false; end
28
+ def object_field?; false; end
29
+ def int_value?; false; end
30
+ def float_value?; false; end
31
+ def string_value?; false; end
32
+ def boolean_value?; false; end
33
+ def null_value?; false; end
34
+ def enum_value?; false; end
35
+ def list_value?; false; end
36
+ def object_value?; false; end
37
+ def directive?; false; end
38
+ def type_condition?; false; end
39
+ def inline_fragment?; false; end
40
+ def fragment_spread?; false; end
41
+ def fragment_definition?; false; end
42
+ def root_operation_type_definition?; false; end
43
+ def schema_definition?; false; end
44
+ def field_definition?; false; end
45
+ def input_value_definition?; false; end
46
+ def object_type_definition?; false; end
47
+ def interface_type_definition?; false; end
48
+ def union_type_definition?; false; end
49
+ def scalar_type_definition?; false; end
50
+ def enum_value_definition?; false; end
51
+ def enum_type_definition?; false; end
52
+ def input_object_type_definition?; false; end
53
+ def object_type_extension?; false; end
54
+ def executable_directive_location?; false; end
55
+ def type_system_directive_location?; false; end
56
+ def directive_definition?; false; end
57
+ def scalar_type_extension?; false; end
58
+ def interface_type_extension?; false; end
59
+ def union_type_extension?; false; end
60
+ def enum_type_extension?; false; end
61
+ def input_object_type_extension?; false; end
45
62
  def each(&blk)
46
63
  yield self
47
64
  children.each { |v| v.each(&blk) }
@@ -51,7 +68,8 @@ module TinyGQL
51
68
  class Document < Node
52
69
  attr_reader :definitions
53
70
 
54
- def initialize definitions
71
+ def initialize pos, definitions
72
+ super(pos)
55
73
  @definitions = definitions
56
74
  end
57
75
 
@@ -72,7 +90,8 @@ module TinyGQL
72
90
  class OperationDefinition < Node
73
91
  attr_reader :type, :name, :variable_definitions, :directives, :selection_set
74
92
 
75
- def initialize type, name, variable_definitions, directives, selection_set
93
+ def initialize pos, type, name, variable_definitions, directives, selection_set
94
+ super(pos)
76
95
  @type = type
77
96
  @name = name
78
97
  @variable_definitions = variable_definitions
@@ -97,7 +116,8 @@ module TinyGQL
97
116
  class Variable < Node
98
117
  attr_reader :name
99
118
 
100
- def initialize name
119
+ def initialize pos, name
120
+ super(pos)
101
121
  @name = name
102
122
  end
103
123
 
@@ -118,7 +138,8 @@ module TinyGQL
118
138
  class NamedType < Node
119
139
  attr_reader :name
120
140
 
121
- def initialize name
141
+ def initialize pos, name
142
+ super(pos)
122
143
  @name = name
123
144
  end
124
145
 
@@ -139,7 +160,8 @@ module TinyGQL
139
160
  class NotNullType < Node
140
161
  attr_reader :type
141
162
 
142
- def initialize type
163
+ def initialize pos, type
164
+ super(pos)
143
165
  @type = type
144
166
  end
145
167
 
@@ -160,7 +182,8 @@ module TinyGQL
160
182
  class ListType < Node
161
183
  attr_reader :type
162
184
 
163
- def initialize type
185
+ def initialize pos, type
186
+ super(pos)
164
187
  @type = type
165
188
  end
166
189
 
@@ -181,7 +204,8 @@ module TinyGQL
181
204
  class VariableDefinition < Node
182
205
  attr_reader :variable, :type, :default_value
183
206
 
184
- def initialize variable, type, default_value
207
+ def initialize pos, variable, type, default_value
208
+ super(pos)
185
209
  @variable = variable
186
210
  @type = type
187
211
  @default_value = default_value
@@ -204,7 +228,8 @@ module TinyGQL
204
228
  class Value < Node
205
229
  attr_reader :value
206
230
 
207
- def initialize value
231
+ def initialize pos, value
232
+ super(pos)
208
233
  @value = value
209
234
  end
210
235
 
@@ -225,7 +250,8 @@ module TinyGQL
225
250
  class Argument < Node
226
251
  attr_reader :name, :value
227
252
 
228
- def initialize name, value
253
+ def initialize pos, name, value
254
+ super(pos)
229
255
  @name = name
230
256
  @value = value
231
257
  end
@@ -247,7 +273,8 @@ module TinyGQL
247
273
  class Field < Node
248
274
  attr_reader :aliaz, :name, :arguments, :directives, :selection_set
249
275
 
250
- def initialize aliaz, name, arguments, directives, selection_set
276
+ def initialize pos, aliaz, name, arguments, directives, selection_set
277
+ super(pos)
251
278
  @aliaz = aliaz
252
279
  @name = name
253
280
  @arguments = arguments
@@ -272,7 +299,8 @@ module TinyGQL
272
299
  class ObjectField < Node
273
300
  attr_reader :name, :value
274
301
 
275
- def initialize name, value
302
+ def initialize pos, name, value
303
+ super(pos)
276
304
  @name = name
277
305
  @value = value
278
306
  end
@@ -385,7 +413,8 @@ module TinyGQL
385
413
  class ObjectValue < Node
386
414
  attr_reader :values
387
415
 
388
- def initialize values
416
+ def initialize pos, values
417
+ super(pos)
389
418
  @values = values
390
419
  end
391
420
 
@@ -406,7 +435,8 @@ module TinyGQL
406
435
  class Directive < Node
407
436
  attr_reader :name, :arguments
408
437
 
409
- def initialize name, arguments
438
+ def initialize pos, name, arguments
439
+ super(pos)
410
440
  @name = name
411
441
  @arguments = arguments
412
442
  end
@@ -422,13 +452,14 @@ module TinyGQL
422
452
  def directive?; true; end
423
453
 
424
454
  def children
425
- ary = []; ary.concat(arguments); ary
455
+ ary = []; ary.concat(arguments) if arguments; ary
426
456
  end
427
457
  end
428
458
  class TypeCondition < Node
429
459
  attr_reader :named_type
430
460
 
431
- def initialize named_type
461
+ def initialize pos, named_type
462
+ super(pos)
432
463
  @named_type = named_type
433
464
  end
434
465
 
@@ -449,7 +480,8 @@ module TinyGQL
449
480
  class InlineFragment < Node
450
481
  attr_reader :type_condition, :directives, :selection_set
451
482
 
452
- def initialize type_condition, directives, selection_set
483
+ def initialize pos, type_condition, directives, selection_set
484
+ super(pos)
453
485
  @type_condition = type_condition
454
486
  @directives = directives
455
487
  @selection_set = selection_set
@@ -472,7 +504,8 @@ module TinyGQL
472
504
  class FragmentSpread < Node
473
505
  attr_reader :fragment_name, :directives
474
506
 
475
- def initialize fragment_name, directives
507
+ def initialize pos, fragment_name, directives
508
+ super(pos)
476
509
  @fragment_name = fragment_name
477
510
  @directives = directives
478
511
  end
@@ -488,13 +521,14 @@ module TinyGQL
488
521
  def fragment_spread?; true; end
489
522
 
490
523
  def children
491
- ary = []; ary << fragment_name; ary.concat(directives) if directives; ary
524
+ ary = []; ary.concat(directives) if directives; ary
492
525
  end
493
526
  end
494
527
  class FragmentDefinition < Node
495
528
  attr_reader :fragment_name, :type_condition, :directives, :selection_set
496
529
 
497
- def initialize fragment_name, type_condition, directives, selection_set
530
+ def initialize pos, fragment_name, type_condition, directives, selection_set
531
+ super(pos)
498
532
  @fragment_name = fragment_name
499
533
  @type_condition = type_condition
500
534
  @directives = directives
@@ -512,13 +546,14 @@ module TinyGQL
512
546
  def fragment_definition?; true; end
513
547
 
514
548
  def children
515
- ary = []; ary << fragment_name; ary << type_condition; ary.concat(directives) if directives; ary.concat(selection_set); ary
549
+ ary = []; ary << type_condition; ary.concat(directives) if directives; ary.concat(selection_set); ary
516
550
  end
517
551
  end
518
552
  class RootOperationTypeDefinition < Node
519
553
  attr_reader :operation_type, :named_type
520
554
 
521
- def initialize operation_type, named_type
555
+ def initialize pos, operation_type, named_type
556
+ super(pos)
522
557
  @operation_type = operation_type
523
558
  @named_type = named_type
524
559
  end
@@ -534,13 +569,14 @@ module TinyGQL
534
569
  def root_operation_type_definition?; true; end
535
570
 
536
571
  def children
537
- ary = []; ary << operation_type; ary << named_type; ary
572
+ ary = []; ary << named_type; ary
538
573
  end
539
574
  end
540
575
  class SchemaDefinition < Node
541
576
  attr_reader :description, :directives, :root_operation_definitions
542
577
 
543
- def initialize description, directives, root_operation_definitions
578
+ def initialize pos, description, directives, root_operation_definitions
579
+ super(pos)
544
580
  @description = description
545
581
  @directives = directives
546
582
  @root_operation_definitions = root_operation_definitions
@@ -557,13 +593,14 @@ module TinyGQL
557
593
  def schema_definition?; true; end
558
594
 
559
595
  def children
560
- ary = []; ary.concat(directives) if directives; ary.concat(root_operation_definitions); ary
596
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary.concat(root_operation_definitions); ary
561
597
  end
562
598
  end
563
599
  class FieldDefinition < Node
564
600
  attr_reader :description, :name, :arguments_definition, :type, :directives
565
601
 
566
- def initialize description, name, arguments_definition, type, directives
602
+ def initialize pos, description, name, arguments_definition, type, directives
603
+ super(pos)
567
604
  @description = description
568
605
  @name = name
569
606
  @arguments_definition = arguments_definition
@@ -582,13 +619,14 @@ module TinyGQL
582
619
  def field_definition?; true; end
583
620
 
584
621
  def children
585
- ary = []; ary.concat(arguments_definition) if arguments_definition; ary << type; ary.concat(directives) if directives; ary
622
+ ary = []; ary << description if description; ary.concat(arguments_definition) if arguments_definition; ary << type; ary.concat(directives) if directives; ary
586
623
  end
587
624
  end
588
625
  class InputValueDefinition < Node
589
626
  attr_reader :description, :name, :type, :default_value, :directives
590
627
 
591
- def initialize description, name, type, default_value, directives
628
+ def initialize pos, description, name, type, default_value, directives
629
+ super(pos)
592
630
  @description = description
593
631
  @name = name
594
632
  @type = type
@@ -607,13 +645,14 @@ module TinyGQL
607
645
  def input_value_definition?; true; end
608
646
 
609
647
  def children
610
- ary = []; ary << type; ary << default_value if default_value; ary.concat(directives) if directives; ary
648
+ ary = []; ary << description if description; ary << type; ary << default_value if default_value; ary.concat(directives) if directives; ary
611
649
  end
612
650
  end
613
651
  class ObjectTypeDefinition < Node
614
652
  attr_reader :description, :name, :implements_interfaces, :directives, :fields_definition
615
653
 
616
- def initialize description, name, implements_interfaces, directives, fields_definition
654
+ def initialize pos, description, name, implements_interfaces, directives, fields_definition
655
+ super(pos)
617
656
  @description = description
618
657
  @name = name
619
658
  @implements_interfaces = implements_interfaces
@@ -632,13 +671,14 @@ module TinyGQL
632
671
  def object_type_definition?; true; end
633
672
 
634
673
  def children
635
- ary = []; ary.concat(implements_interfaces) if implements_interfaces; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
674
+ ary = []; ary << description if description; ary.concat(implements_interfaces) if implements_interfaces; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
636
675
  end
637
676
  end
638
677
  class InterfaceTypeDefinition < Node
639
678
  attr_reader :description, :name, :directives, :fields_definition
640
679
 
641
- def initialize description, name, directives, fields_definition
680
+ def initialize pos, description, name, directives, fields_definition
681
+ super(pos)
642
682
  @description = description
643
683
  @name = name
644
684
  @directives = directives
@@ -656,13 +696,14 @@ module TinyGQL
656
696
  def interface_type_definition?; true; end
657
697
 
658
698
  def children
659
- ary = []; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
699
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
660
700
  end
661
701
  end
662
702
  class UnionTypeDefinition < Node
663
703
  attr_reader :description, :name, :directives, :union_member_types
664
704
 
665
- def initialize description, name, directives, union_member_types
705
+ def initialize pos, description, name, directives, union_member_types
706
+ super(pos)
666
707
  @description = description
667
708
  @name = name
668
709
  @directives = directives
@@ -680,13 +721,14 @@ module TinyGQL
680
721
  def union_type_definition?; true; end
681
722
 
682
723
  def children
683
- ary = []; ary.concat(directives) if directives; ary.concat(union_member_types) if union_member_types; ary
724
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary.concat(union_member_types) if union_member_types; ary
684
725
  end
685
726
  end
686
727
  class ScalarTypeDefinition < Node
687
728
  attr_reader :description, :name, :directives
688
729
 
689
- def initialize description, name, directives
730
+ def initialize pos, description, name, directives
731
+ super(pos)
690
732
  @description = description
691
733
  @name = name
692
734
  @directives = directives
@@ -703,13 +745,14 @@ module TinyGQL
703
745
  def scalar_type_definition?; true; end
704
746
 
705
747
  def children
706
- ary = []; ary.concat(directives) if directives; ary
748
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary
707
749
  end
708
750
  end
709
751
  class EnumValueDefinition < Node
710
752
  attr_reader :description, :enum_value, :directives
711
753
 
712
- def initialize description, enum_value, directives
754
+ def initialize pos, description, enum_value, directives
755
+ super(pos)
713
756
  @description = description
714
757
  @enum_value = enum_value
715
758
  @directives = directives
@@ -726,13 +769,14 @@ module TinyGQL
726
769
  def enum_value_definition?; true; end
727
770
 
728
771
  def children
729
- ary = []; ary << enum_value; ary.concat(directives) if directives; ary
772
+ ary = []; ary << description if description; ary << enum_value; ary.concat(directives) if directives; ary
730
773
  end
731
774
  end
732
775
  class EnumTypeDefinition < Node
733
776
  attr_reader :description, :name, :directives, :enum_value_definition
734
777
 
735
- def initialize description, name, directives, enum_value_definition
778
+ def initialize pos, description, name, directives, enum_value_definition
779
+ super(pos)
736
780
  @description = description
737
781
  @name = name
738
782
  @directives = directives
@@ -750,13 +794,14 @@ module TinyGQL
750
794
  def enum_type_definition?; true; end
751
795
 
752
796
  def children
753
- ary = []; ary.concat(directives) if directives; ary.concat(enum_value_definition) if enum_value_definition; ary
797
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary.concat(enum_value_definition) if enum_value_definition; ary
754
798
  end
755
799
  end
756
800
  class InputObjectTypeDefinition < Node
757
801
  attr_reader :description, :name, :directives, :input_fields_definition
758
802
 
759
- def initialize description, name, directives, input_fields_definition
803
+ def initialize pos, description, name, directives, input_fields_definition
804
+ super(pos)
760
805
  @description = description
761
806
  @name = name
762
807
  @directives = directives
@@ -774,13 +819,14 @@ module TinyGQL
774
819
  def input_object_type_definition?; true; end
775
820
 
776
821
  def children
777
- ary = []; ary.concat(directives) if directives; ary.concat(input_fields_definition) if input_fields_definition; ary
822
+ ary = []; ary << description if description; ary.concat(directives) if directives; ary.concat(input_fields_definition) if input_fields_definition; ary
778
823
  end
779
824
  end
780
825
  class ObjectTypeExtension < Node
781
826
  attr_reader :name, :implements_interfaces, :directives, :fields_definition
782
827
 
783
- def initialize name, implements_interfaces, directives, fields_definition
828
+ def initialize pos, name, implements_interfaces, directives, fields_definition
829
+ super(pos)
784
830
  @name = name
785
831
  @implements_interfaces = implements_interfaces
786
832
  @directives = directives
@@ -804,7 +850,8 @@ module TinyGQL
804
850
  class ExecutableDirectiveLocation < Node
805
851
  attr_reader :name
806
852
 
807
- def initialize name
853
+ def initialize pos, name
854
+ super(pos)
808
855
  @name = name
809
856
  end
810
857
 
@@ -825,7 +872,8 @@ module TinyGQL
825
872
  class TypeSystemDirectiveLocation < Node
826
873
  attr_reader :name
827
874
 
828
- def initialize name
875
+ def initialize pos, name
876
+ super(pos)
829
877
  @name = name
830
878
  end
831
879
 
@@ -846,7 +894,8 @@ module TinyGQL
846
894
  class DirectiveDefinition < Node
847
895
  attr_reader :description, :name, :arguments_definition, :directive_locations
848
896
 
849
- def initialize description, name, arguments_definition, directive_locations
897
+ def initialize pos, description, name, arguments_definition, directive_locations
898
+ super(pos)
850
899
  @description = description
851
900
  @name = name
852
901
  @arguments_definition = arguments_definition
@@ -864,7 +913,127 @@ module TinyGQL
864
913
  def directive_definition?; true; end
865
914
 
866
915
  def children
867
- ary = []; ary.concat(arguments_definition) if arguments_definition; ary.concat(directive_locations); ary
916
+ ary = []; ary << description if description; ary.concat(arguments_definition) if arguments_definition; ary.concat(directive_locations); ary
917
+ end
918
+ end
919
+ class ScalarTypeExtension < Node
920
+ attr_reader :name, :directives
921
+
922
+ def initialize pos, name, directives
923
+ super(pos)
924
+ @name = name
925
+ @directives = directives
926
+ end
927
+
928
+ def accept viz
929
+ viz.handle_scalar_type_extension self
930
+ end
931
+
932
+ def fold viz, seed
933
+ viz.handle_scalar_type_extension self, seed
934
+ end
935
+
936
+ def scalar_type_extension?; true; end
937
+
938
+ def children
939
+ ary = []; ary.concat(directives) if directives; ary
940
+ end
941
+ end
942
+ class InterfaceTypeExtension < Node
943
+ attr_reader :name, :implements_interfaces, :directives, :fields_definition
944
+
945
+ def initialize pos, name, implements_interfaces, directives, fields_definition
946
+ super(pos)
947
+ @name = name
948
+ @implements_interfaces = implements_interfaces
949
+ @directives = directives
950
+ @fields_definition = fields_definition
951
+ end
952
+
953
+ def accept viz
954
+ viz.handle_interface_type_extension self
955
+ end
956
+
957
+ def fold viz, seed
958
+ viz.handle_interface_type_extension self, seed
959
+ end
960
+
961
+ def interface_type_extension?; true; end
962
+
963
+ def children
964
+ ary = []; ary.concat(implements_interfaces) if implements_interfaces; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
965
+ end
966
+ end
967
+ class UnionTypeExtension < Node
968
+ attr_reader :name, :directives, :union_member_types
969
+
970
+ def initialize pos, name, directives, union_member_types
971
+ super(pos)
972
+ @name = name
973
+ @directives = directives
974
+ @union_member_types = union_member_types
975
+ end
976
+
977
+ def accept viz
978
+ viz.handle_union_type_extension self
979
+ end
980
+
981
+ def fold viz, seed
982
+ viz.handle_union_type_extension self, seed
983
+ end
984
+
985
+ def union_type_extension?; true; end
986
+
987
+ def children
988
+ ary = []; ary.concat(directives) if directives; ary.concat(union_member_types) if union_member_types; ary
989
+ end
990
+ end
991
+ class EnumTypeExtension < Node
992
+ attr_reader :name, :directives, :enum_value_definition
993
+
994
+ def initialize pos, name, directives, enum_value_definition
995
+ super(pos)
996
+ @name = name
997
+ @directives = directives
998
+ @enum_value_definition = enum_value_definition
999
+ end
1000
+
1001
+ def accept viz
1002
+ viz.handle_enum_type_extension self
1003
+ end
1004
+
1005
+ def fold viz, seed
1006
+ viz.handle_enum_type_extension self, seed
1007
+ end
1008
+
1009
+ def enum_type_extension?; true; end
1010
+
1011
+ def children
1012
+ ary = []; ary.concat(directives) if directives; ary.concat(enum_value_definition) if enum_value_definition; ary
1013
+ end
1014
+ end
1015
+ class InputObjectTypeExtension < Node
1016
+ attr_reader :name, :directives, :input_fields_definition
1017
+
1018
+ def initialize pos, name, directives, input_fields_definition
1019
+ super(pos)
1020
+ @name = name
1021
+ @directives = directives
1022
+ @input_fields_definition = input_fields_definition
1023
+ end
1024
+
1025
+ def accept viz
1026
+ viz.handle_input_object_type_extension self
1027
+ end
1028
+
1029
+ def fold viz, seed
1030
+ viz.handle_input_object_type_extension self, seed
1031
+ end
1032
+
1033
+ def input_object_type_extension?; true; end
1034
+
1035
+ def children
1036
+ ary = []; ary.concat(directives) if directives; ary.concat(input_fields_definition) if input_fields_definition; ary
868
1037
  end
869
1038
  end
870
1039
  end
@@ -3,8 +3,20 @@ module TinyGQL
3
3
  class Node
4
4
  include Enumerable
5
5
 
6
+ # `pos` is the position of the _end_ of a token
7
+ attr_reader :pos
8
+
9
+ def initialize pos
10
+ @pos = pos
11
+ end
12
+
13
+ # Return the line of this node given `doc`
14
+ def line doc
15
+ doc[0, @pos].count("\n") + 1
16
+ end
17
+
6
18
  <%- nodes.each do |node| -%>
7
- def <%= node.human_name %>?; false; end
19
+ def <%= node.human_name %>?; false; end
8
20
  <%- end -%>
9
21
  def each(&blk)
10
22
  yield self
@@ -17,7 +29,8 @@ module TinyGQL
17
29
  <%- if node.fields.any? -%>
18
30
  attr_reader <%= node.fields.map { |v| ":" + v.name }.join(", ") %>
19
31
 
20
- def initialize <%= node.fields.map(&:name).join(", ") %>
32
+ def initialize <%= (["pos"] + node.fields.map(&:name)).join(", ") %>
33
+ super(pos)
21
34
  <%- node.fields.each do |field| -%>
22
35
  @<%= field.name %> = <%= field.name %>
23
36
  <%- end -%>