tinygql 0.1.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.
- checksums.yaml +7 -0
- data/.github/workflows/ci.yml +46 -0
- data/.gitignore +4 -0
- data/CODE_OF_CONDUCT.md +77 -0
- data/Gemfile +3 -0
- data/LICENSE +201 -0
- data/README.md +71 -0
- data/Rakefile +132 -0
- data/bin/bench.rb +11 -0
- data/lib/tinygql/lexer.rb +256 -0
- data/lib/tinygql/nodes.rb +870 -0
- data/lib/tinygql/nodes.rb.erb +45 -0
- data/lib/tinygql/nodes.yml +205 -0
- data/lib/tinygql/parser.rb +598 -0
- data/lib/tinygql/version.rb +3 -0
- data/lib/tinygql/visitors.rb +442 -0
- data/lib/tinygql/visitors.rb.erb +46 -0
- data/lib/tinygql.rb +10 -0
- data/test/helper.rb +14 -0
- data/test/kitchen-sink.graphql +59 -0
- data/test/lexer_test.rb +93 -0
- data/test/parser_test.rb +144 -0
- data/test/schema-kitchen-sink.graphql +78 -0
- data/tinygql.gemspec +20 -0
- metadata +98 -0
@@ -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
|