tinygql 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,870 @@
1
+ module TinyGQL
2
+ module Nodes
3
+ class Node
4
+ include Enumerable
5
+
6
+ def document? = false
7
+ def operation_definition? = false
8
+ def variable? = false
9
+ def named_type? = false
10
+ def not_null_type? = false
11
+ def list_type? = false
12
+ def variable_definition? = false
13
+ def value? = false
14
+ def argument? = false
15
+ def field? = false
16
+ def object_field? = false
17
+ def int_value? = false
18
+ def float_value? = false
19
+ def string_value? = false
20
+ def boolean_value? = false
21
+ def null_value? = false
22
+ def enum_value? = false
23
+ def list_value? = false
24
+ def object_value? = false
25
+ def directive? = false
26
+ def type_condition? = false
27
+ def inline_fragment? = false
28
+ def fragment_spread? = false
29
+ def fragment_definition? = false
30
+ def root_operation_type_definition? = false
31
+ def schema_definition? = false
32
+ def field_definition? = false
33
+ def input_value_definition? = false
34
+ def object_type_definition? = false
35
+ def interface_type_definition? = false
36
+ def union_type_definition? = false
37
+ def scalar_type_definition? = false
38
+ def enum_value_definition? = false
39
+ def enum_type_definition? = false
40
+ def input_object_type_definition? = false
41
+ def object_type_extension? = false
42
+ def executable_directive_location? = false
43
+ def type_system_directive_location? = false
44
+ def directive_definition? = false
45
+ def each(&blk)
46
+ yield self
47
+ children.each { _1.each(&blk) }
48
+ end
49
+ end
50
+
51
+ class Document < Node
52
+ attr_reader :definitions
53
+
54
+ def initialize definitions
55
+ @definitions = definitions
56
+ end
57
+
58
+ def accept viz
59
+ viz.handle_document self
60
+ end
61
+
62
+ def fold viz, seed
63
+ viz.handle_document self, seed
64
+ end
65
+
66
+ def document? = true
67
+
68
+ def children
69
+ ary = []; ary.concat(definitions); ary
70
+ end
71
+ end
72
+ class OperationDefinition < Node
73
+ attr_reader :type, :name, :variable_definitions, :directives, :selection_set
74
+
75
+ def initialize type, name, variable_definitions, directives, selection_set
76
+ @type = type
77
+ @name = name
78
+ @variable_definitions = variable_definitions
79
+ @directives = directives
80
+ @selection_set = selection_set
81
+ end
82
+
83
+ def accept viz
84
+ viz.handle_operation_definition self
85
+ end
86
+
87
+ def fold viz, seed
88
+ viz.handle_operation_definition self, seed
89
+ end
90
+
91
+ def operation_definition? = true
92
+
93
+ def children
94
+ ary = []; ary.concat(variable_definitions) if variable_definitions; ary.concat(directives) if directives; ary.concat(selection_set); ary
95
+ end
96
+ end
97
+ class Variable < Node
98
+ attr_reader :name
99
+
100
+ def initialize name
101
+ @name = name
102
+ end
103
+
104
+ def accept viz
105
+ viz.handle_variable self
106
+ end
107
+
108
+ def fold viz, seed
109
+ viz.handle_variable self, seed
110
+ end
111
+
112
+ def variable? = true
113
+
114
+ def children
115
+ ary = []; ary
116
+ end
117
+ end
118
+ class NamedType < Node
119
+ attr_reader :name
120
+
121
+ def initialize name
122
+ @name = name
123
+ end
124
+
125
+ def accept viz
126
+ viz.handle_named_type self
127
+ end
128
+
129
+ def fold viz, seed
130
+ viz.handle_named_type self, seed
131
+ end
132
+
133
+ def named_type? = true
134
+
135
+ def children
136
+ ary = []; ary
137
+ end
138
+ end
139
+ class NotNullType < Node
140
+ attr_reader :type
141
+
142
+ def initialize type
143
+ @type = type
144
+ end
145
+
146
+ def accept viz
147
+ viz.handle_not_null_type self
148
+ end
149
+
150
+ def fold viz, seed
151
+ viz.handle_not_null_type self, seed
152
+ end
153
+
154
+ def not_null_type? = true
155
+
156
+ def children
157
+ ary = []; ary << type; ary
158
+ end
159
+ end
160
+ class ListType < Node
161
+ attr_reader :type
162
+
163
+ def initialize type
164
+ @type = type
165
+ end
166
+
167
+ def accept viz
168
+ viz.handle_list_type self
169
+ end
170
+
171
+ def fold viz, seed
172
+ viz.handle_list_type self, seed
173
+ end
174
+
175
+ def list_type? = true
176
+
177
+ def children
178
+ ary = []; ary << type; ary
179
+ end
180
+ end
181
+ class VariableDefinition < Node
182
+ attr_reader :variable, :type, :default_value
183
+
184
+ def initialize variable, type, default_value
185
+ @variable = variable
186
+ @type = type
187
+ @default_value = default_value
188
+ end
189
+
190
+ def accept viz
191
+ viz.handle_variable_definition self
192
+ end
193
+
194
+ def fold viz, seed
195
+ viz.handle_variable_definition self, seed
196
+ end
197
+
198
+ def variable_definition? = true
199
+
200
+ def children
201
+ ary = []; ary << variable; ary << type; ary << default_value if default_value; ary
202
+ end
203
+ end
204
+ class Value < Node
205
+ attr_reader :value
206
+
207
+ def initialize value
208
+ @value = value
209
+ end
210
+
211
+ def accept viz
212
+ viz.handle_value self
213
+ end
214
+
215
+ def fold viz, seed
216
+ viz.handle_value self, seed
217
+ end
218
+
219
+ def value? = true
220
+
221
+ def children
222
+ ary = []; ary
223
+ end
224
+ end
225
+ class Argument < Node
226
+ attr_reader :name, :value
227
+
228
+ def initialize name, value
229
+ @name = name
230
+ @value = value
231
+ end
232
+
233
+ def accept viz
234
+ viz.handle_argument self
235
+ end
236
+
237
+ def fold viz, seed
238
+ viz.handle_argument self, seed
239
+ end
240
+
241
+ def argument? = true
242
+
243
+ def children
244
+ ary = []; ary << value; ary
245
+ end
246
+ end
247
+ class Field < Node
248
+ attr_reader :aliaz, :name, :arguments, :directives, :selection_set
249
+
250
+ def initialize aliaz, name, arguments, directives, selection_set
251
+ @aliaz = aliaz
252
+ @name = name
253
+ @arguments = arguments
254
+ @directives = directives
255
+ @selection_set = selection_set
256
+ end
257
+
258
+ def accept viz
259
+ viz.handle_field self
260
+ end
261
+
262
+ def fold viz, seed
263
+ viz.handle_field self, seed
264
+ end
265
+
266
+ def field? = true
267
+
268
+ def children
269
+ ary = []; ary.concat(arguments) if arguments; ary.concat(directives) if directives; ary.concat(selection_set) if selection_set; ary
270
+ end
271
+ end
272
+ class ObjectField < Node
273
+ attr_reader :name, :value
274
+
275
+ def initialize name, value
276
+ @name = name
277
+ @value = value
278
+ end
279
+
280
+ def accept viz
281
+ viz.handle_object_field self
282
+ end
283
+
284
+ def fold viz, seed
285
+ viz.handle_object_field self, seed
286
+ end
287
+
288
+ def object_field? = true
289
+
290
+ def children
291
+ ary = []; ary << value; ary
292
+ end
293
+ end
294
+ class IntValue < Value
295
+
296
+ def accept viz
297
+ viz.handle_int_value self
298
+ end
299
+
300
+ def fold viz, seed
301
+ viz.handle_int_value self, seed
302
+ end
303
+
304
+ def int_value? = true
305
+
306
+ end
307
+ class FloatValue < Value
308
+
309
+ def accept viz
310
+ viz.handle_float_value self
311
+ end
312
+
313
+ def fold viz, seed
314
+ viz.handle_float_value self, seed
315
+ end
316
+
317
+ def float_value? = true
318
+
319
+ end
320
+ class StringValue < Value
321
+
322
+ def accept viz
323
+ viz.handle_string_value self
324
+ end
325
+
326
+ def fold viz, seed
327
+ viz.handle_string_value self, seed
328
+ end
329
+
330
+ def string_value? = true
331
+
332
+ end
333
+ class BooleanValue < Value
334
+
335
+ def accept viz
336
+ viz.handle_boolean_value self
337
+ end
338
+
339
+ def fold viz, seed
340
+ viz.handle_boolean_value self, seed
341
+ end
342
+
343
+ def boolean_value? = true
344
+
345
+ end
346
+ class NullValue < Value
347
+
348
+ def accept viz
349
+ viz.handle_null_value self
350
+ end
351
+
352
+ def fold viz, seed
353
+ viz.handle_null_value self, seed
354
+ end
355
+
356
+ def null_value? = true
357
+
358
+ end
359
+ class EnumValue < Value
360
+
361
+ def accept viz
362
+ viz.handle_enum_value self
363
+ end
364
+
365
+ def fold viz, seed
366
+ viz.handle_enum_value self, seed
367
+ end
368
+
369
+ def enum_value? = true
370
+
371
+ end
372
+ class ListValue < Value
373
+
374
+ def accept viz
375
+ viz.handle_list_value self
376
+ end
377
+
378
+ def fold viz, seed
379
+ viz.handle_list_value self, seed
380
+ end
381
+
382
+ def list_value? = true
383
+
384
+ end
385
+ class ObjectValue < Node
386
+ attr_reader :values
387
+
388
+ def initialize values
389
+ @values = values
390
+ end
391
+
392
+ def accept viz
393
+ viz.handle_object_value self
394
+ end
395
+
396
+ def fold viz, seed
397
+ viz.handle_object_value self, seed
398
+ end
399
+
400
+ def object_value? = true
401
+
402
+ def children
403
+ ary = []; ary.concat(values); ary
404
+ end
405
+ end
406
+ class Directive < Node
407
+ attr_reader :name, :arguments
408
+
409
+ def initialize name, arguments
410
+ @name = name
411
+ @arguments = arguments
412
+ end
413
+
414
+ def accept viz
415
+ viz.handle_directive self
416
+ end
417
+
418
+ def fold viz, seed
419
+ viz.handle_directive self, seed
420
+ end
421
+
422
+ def directive? = true
423
+
424
+ def children
425
+ ary = []; ary.concat(arguments); ary
426
+ end
427
+ end
428
+ class TypeCondition < Node
429
+ attr_reader :named_type
430
+
431
+ def initialize named_type
432
+ @named_type = named_type
433
+ end
434
+
435
+ def accept viz
436
+ viz.handle_type_condition self
437
+ end
438
+
439
+ def fold viz, seed
440
+ viz.handle_type_condition self, seed
441
+ end
442
+
443
+ def type_condition? = true
444
+
445
+ def children
446
+ ary = []; ary << named_type; ary
447
+ end
448
+ end
449
+ class InlineFragment < Node
450
+ attr_reader :type_condition, :directives, :selection_set
451
+
452
+ def initialize type_condition, directives, selection_set
453
+ @type_condition = type_condition
454
+ @directives = directives
455
+ @selection_set = selection_set
456
+ end
457
+
458
+ def accept viz
459
+ viz.handle_inline_fragment self
460
+ end
461
+
462
+ def fold viz, seed
463
+ viz.handle_inline_fragment self, seed
464
+ end
465
+
466
+ def inline_fragment? = true
467
+
468
+ def children
469
+ ary = []; ary << type_condition if type_condition; ary.concat(directives) if directives; ary.concat(selection_set); ary
470
+ end
471
+ end
472
+ class FragmentSpread < Node
473
+ attr_reader :fragment_name, :directives
474
+
475
+ def initialize fragment_name, directives
476
+ @fragment_name = fragment_name
477
+ @directives = directives
478
+ end
479
+
480
+ def accept viz
481
+ viz.handle_fragment_spread self
482
+ end
483
+
484
+ def fold viz, seed
485
+ viz.handle_fragment_spread self, seed
486
+ end
487
+
488
+ def fragment_spread? = true
489
+
490
+ def children
491
+ ary = []; ary << fragment_name; ary.concat(directives) if directives; ary
492
+ end
493
+ end
494
+ class FragmentDefinition < Node
495
+ attr_reader :fragment_name, :type_condition, :directives, :selection_set
496
+
497
+ def initialize fragment_name, type_condition, directives, selection_set
498
+ @fragment_name = fragment_name
499
+ @type_condition = type_condition
500
+ @directives = directives
501
+ @selection_set = selection_set
502
+ end
503
+
504
+ def accept viz
505
+ viz.handle_fragment_definition self
506
+ end
507
+
508
+ def fold viz, seed
509
+ viz.handle_fragment_definition self, seed
510
+ end
511
+
512
+ def fragment_definition? = true
513
+
514
+ def children
515
+ ary = []; ary << fragment_name; ary << type_condition; ary.concat(directives) if directives; ary.concat(selection_set); ary
516
+ end
517
+ end
518
+ class RootOperationTypeDefinition < Node
519
+ attr_reader :operation_type, :named_type
520
+
521
+ def initialize operation_type, named_type
522
+ @operation_type = operation_type
523
+ @named_type = named_type
524
+ end
525
+
526
+ def accept viz
527
+ viz.handle_root_operation_type_definition self
528
+ end
529
+
530
+ def fold viz, seed
531
+ viz.handle_root_operation_type_definition self, seed
532
+ end
533
+
534
+ def root_operation_type_definition? = true
535
+
536
+ def children
537
+ ary = []; ary << operation_type; ary << named_type; ary
538
+ end
539
+ end
540
+ class SchemaDefinition < Node
541
+ attr_reader :directives, :root_operation_definitions
542
+
543
+ def initialize directives, root_operation_definitions
544
+ @directives = directives
545
+ @root_operation_definitions = root_operation_definitions
546
+ end
547
+
548
+ def accept viz
549
+ viz.handle_schema_definition self
550
+ end
551
+
552
+ def fold viz, seed
553
+ viz.handle_schema_definition self, seed
554
+ end
555
+
556
+ def schema_definition? = true
557
+
558
+ def children
559
+ ary = []; ary.concat(directives) if directives; ary.concat(root_operation_definitions); ary
560
+ end
561
+ end
562
+ class FieldDefinition < Node
563
+ attr_reader :description, :name, :arguments_definition, :type, :directives
564
+
565
+ def initialize description, name, arguments_definition, type, directives
566
+ @description = description
567
+ @name = name
568
+ @arguments_definition = arguments_definition
569
+ @type = type
570
+ @directives = directives
571
+ end
572
+
573
+ def accept viz
574
+ viz.handle_field_definition self
575
+ end
576
+
577
+ def fold viz, seed
578
+ viz.handle_field_definition self, seed
579
+ end
580
+
581
+ def field_definition? = true
582
+
583
+ def children
584
+ ary = []; ary.concat(arguments_definition) if arguments_definition; ary << type; ary.concat(directives) if directives; ary
585
+ end
586
+ end
587
+ class InputValueDefinition < Node
588
+ attr_reader :description, :name, :type, :default_value, :directives
589
+
590
+ def initialize description, name, type, default_value, directives
591
+ @description = description
592
+ @name = name
593
+ @type = type
594
+ @default_value = default_value
595
+ @directives = directives
596
+ end
597
+
598
+ def accept viz
599
+ viz.handle_input_value_definition self
600
+ end
601
+
602
+ def fold viz, seed
603
+ viz.handle_input_value_definition self, seed
604
+ end
605
+
606
+ def input_value_definition? = true
607
+
608
+ def children
609
+ ary = []; ary << type; ary << default_value if default_value; ary.concat(directives) if directives; ary
610
+ end
611
+ end
612
+ class ObjectTypeDefinition < Node
613
+ attr_reader :description, :name, :implements_interfaces, :directives, :fields_definition
614
+
615
+ def initialize description, name, implements_interfaces, directives, fields_definition
616
+ @description = description
617
+ @name = name
618
+ @implements_interfaces = implements_interfaces
619
+ @directives = directives
620
+ @fields_definition = fields_definition
621
+ end
622
+
623
+ def accept viz
624
+ viz.handle_object_type_definition self
625
+ end
626
+
627
+ def fold viz, seed
628
+ viz.handle_object_type_definition self, seed
629
+ end
630
+
631
+ def object_type_definition? = true
632
+
633
+ def children
634
+ ary = []; ary.concat(implements_interfaces) if implements_interfaces; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
635
+ end
636
+ end
637
+ class InterfaceTypeDefinition < Node
638
+ attr_reader :description, :name, :directives, :fields_definition
639
+
640
+ def initialize description, name, directives, fields_definition
641
+ @description = description
642
+ @name = name
643
+ @directives = directives
644
+ @fields_definition = fields_definition
645
+ end
646
+
647
+ def accept viz
648
+ viz.handle_interface_type_definition self
649
+ end
650
+
651
+ def fold viz, seed
652
+ viz.handle_interface_type_definition self, seed
653
+ end
654
+
655
+ def interface_type_definition? = true
656
+
657
+ def children
658
+ ary = []; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
659
+ end
660
+ end
661
+ class UnionTypeDefinition < Node
662
+ attr_reader :description, :name, :directives, :union_member_types
663
+
664
+ def initialize description, name, directives, union_member_types
665
+ @description = description
666
+ @name = name
667
+ @directives = directives
668
+ @union_member_types = union_member_types
669
+ end
670
+
671
+ def accept viz
672
+ viz.handle_union_type_definition self
673
+ end
674
+
675
+ def fold viz, seed
676
+ viz.handle_union_type_definition self, seed
677
+ end
678
+
679
+ def union_type_definition? = true
680
+
681
+ def children
682
+ ary = []; ary.concat(directives) if directives; ary.concat(union_member_types) if union_member_types; ary
683
+ end
684
+ end
685
+ class ScalarTypeDefinition < Node
686
+ attr_reader :description, :name, :directives
687
+
688
+ def initialize description, name, directives
689
+ @description = description
690
+ @name = name
691
+ @directives = directives
692
+ end
693
+
694
+ def accept viz
695
+ viz.handle_scalar_type_definition self
696
+ end
697
+
698
+ def fold viz, seed
699
+ viz.handle_scalar_type_definition self, seed
700
+ end
701
+
702
+ def scalar_type_definition? = true
703
+
704
+ def children
705
+ ary = []; ary.concat(directives) if directives; ary
706
+ end
707
+ end
708
+ class EnumValueDefinition < Node
709
+ attr_reader :description, :enum_value, :directives
710
+
711
+ def initialize description, enum_value, directives
712
+ @description = description
713
+ @enum_value = enum_value
714
+ @directives = directives
715
+ end
716
+
717
+ def accept viz
718
+ viz.handle_enum_value_definition self
719
+ end
720
+
721
+ def fold viz, seed
722
+ viz.handle_enum_value_definition self, seed
723
+ end
724
+
725
+ def enum_value_definition? = true
726
+
727
+ def children
728
+ ary = []; ary << enum_value; ary.concat(directives) if directives; ary
729
+ end
730
+ end
731
+ class EnumTypeDefinition < Node
732
+ attr_reader :description, :name, :directives, :enum_value_definition
733
+
734
+ def initialize description, name, directives, enum_value_definition
735
+ @description = description
736
+ @name = name
737
+ @directives = directives
738
+ @enum_value_definition = enum_value_definition
739
+ end
740
+
741
+ def accept viz
742
+ viz.handle_enum_type_definition self
743
+ end
744
+
745
+ def fold viz, seed
746
+ viz.handle_enum_type_definition self, seed
747
+ end
748
+
749
+ def enum_type_definition? = true
750
+
751
+ def children
752
+ ary = []; ary.concat(directives) if directives; ary.concat(enum_value_definition) if enum_value_definition; ary
753
+ end
754
+ end
755
+ class InputObjectTypeDefinition < Node
756
+ attr_reader :description, :name, :directives, :input_fields_definition
757
+
758
+ def initialize description, name, directives, input_fields_definition
759
+ @description = description
760
+ @name = name
761
+ @directives = directives
762
+ @input_fields_definition = input_fields_definition
763
+ end
764
+
765
+ def accept viz
766
+ viz.handle_input_object_type_definition self
767
+ end
768
+
769
+ def fold viz, seed
770
+ viz.handle_input_object_type_definition self, seed
771
+ end
772
+
773
+ def input_object_type_definition? = true
774
+
775
+ def children
776
+ ary = []; ary.concat(directives) if directives; ary.concat(input_fields_definition) if input_fields_definition; ary
777
+ end
778
+ end
779
+ class ObjectTypeExtension < Node
780
+ attr_reader :name, :implements_interfaces, :directives, :fields_definition
781
+
782
+ def initialize name, implements_interfaces, directives, fields_definition
783
+ @name = name
784
+ @implements_interfaces = implements_interfaces
785
+ @directives = directives
786
+ @fields_definition = fields_definition
787
+ end
788
+
789
+ def accept viz
790
+ viz.handle_object_type_extension self
791
+ end
792
+
793
+ def fold viz, seed
794
+ viz.handle_object_type_extension self, seed
795
+ end
796
+
797
+ def object_type_extension? = true
798
+
799
+ def children
800
+ ary = []; ary.concat(implements_interfaces) if implements_interfaces; ary.concat(directives) if directives; ary.concat(fields_definition) if fields_definition; ary
801
+ end
802
+ end
803
+ class ExecutableDirectiveLocation < Node
804
+ attr_reader :name
805
+
806
+ def initialize name
807
+ @name = name
808
+ end
809
+
810
+ def accept viz
811
+ viz.handle_executable_directive_location self
812
+ end
813
+
814
+ def fold viz, seed
815
+ viz.handle_executable_directive_location self, seed
816
+ end
817
+
818
+ def executable_directive_location? = true
819
+
820
+ def children
821
+ ary = []; ary
822
+ end
823
+ end
824
+ class TypeSystemDirectiveLocation < Node
825
+ attr_reader :name
826
+
827
+ def initialize name
828
+ @name = name
829
+ end
830
+
831
+ def accept viz
832
+ viz.handle_type_system_directive_location self
833
+ end
834
+
835
+ def fold viz, seed
836
+ viz.handle_type_system_directive_location self, seed
837
+ end
838
+
839
+ def type_system_directive_location? = true
840
+
841
+ def children
842
+ ary = []; ary
843
+ end
844
+ end
845
+ class DirectiveDefinition < Node
846
+ attr_reader :description, :name, :arguments_definition, :directive_locations
847
+
848
+ def initialize description, name, arguments_definition, directive_locations
849
+ @description = description
850
+ @name = name
851
+ @arguments_definition = arguments_definition
852
+ @directive_locations = directive_locations
853
+ end
854
+
855
+ def accept viz
856
+ viz.handle_directive_definition self
857
+ end
858
+
859
+ def fold viz, seed
860
+ viz.handle_directive_definition self, seed
861
+ end
862
+
863
+ def directive_definition? = true
864
+
865
+ def children
866
+ ary = []; ary.concat(arguments_definition) if arguments_definition; ary.concat(directive_locations); ary
867
+ end
868
+ end
869
+ end
870
+ end