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.
@@ -0,0 +1,45 @@
1
+ module TinyGQL
2
+ module Nodes
3
+ class Node
4
+ include Enumerable
5
+
6
+ <%- nodes.each do |node| -%>
7
+ def <%= node.human_name %>? = false
8
+ <%- end -%>
9
+ def each(&blk)
10
+ yield self
11
+ children.each { _1.each(&blk) }
12
+ end
13
+ end
14
+
15
+ <%- nodes.each do |node| -%>
16
+ class <%= node.name %> < <%= node.parent ? node.parent : "Node" %>
17
+ <%- if node.fields.any? -%>
18
+ attr_reader <%= node.fields.map { ":" + _1.name }.join(", ") %>
19
+
20
+ def initialize <%= node.fields.map(&:name).join(", ") %>
21
+ <%- node.fields.each do |field| -%>
22
+ @<%= field.name %> = <%= field.name %>
23
+ <%- end -%>
24
+ end
25
+ <%- end -%>
26
+
27
+ def accept viz
28
+ viz.handle_<%= node.human_name %> self
29
+ end
30
+
31
+ def fold viz, seed
32
+ viz.handle_<%= node.human_name %> self, seed
33
+ end
34
+
35
+ def <%= node.human_name %>? = true
36
+
37
+ <%- if node.has_children? -%>
38
+ def children
39
+ <%= node.children %>
40
+ end
41
+ <%- end -%>
42
+ end
43
+ <%- end -%>
44
+ end
45
+ end
@@ -0,0 +1,205 @@
1
+ ---
2
+ nodes:
3
+ - name: Document
4
+ fields:
5
+ - definitions: list
6
+
7
+ - name: OperationDefinition
8
+ fields:
9
+ - type: literal
10
+ - name?: literal
11
+ - variable_definitions?: list
12
+ - directives?: list
13
+ - selection_set: list
14
+
15
+ - name: Variable
16
+ fields:
17
+ - name: literal
18
+
19
+ - name: NamedType
20
+ fields:
21
+ - name: literal
22
+
23
+ - name: NotNullType
24
+ fields:
25
+ - type
26
+
27
+ - name: ListType
28
+ fields:
29
+ - type
30
+
31
+ - name: VariableDefinition
32
+ fields:
33
+ - variable
34
+ - type
35
+ - default_value?
36
+
37
+ - name: Value
38
+ fields:
39
+ - value: literal
40
+
41
+ - name: Argument
42
+ fields:
43
+ - name: literal
44
+ - value
45
+
46
+ - name: Field
47
+ fields:
48
+ - aliaz?: literal
49
+ - name: literal
50
+ - arguments?: list
51
+ - directives?: list
52
+ - selection_set?: list
53
+
54
+ - name: ObjectField
55
+ fields:
56
+ - name: literal
57
+ - value
58
+
59
+ - name: IntValue
60
+ parent: Value
61
+
62
+ - name: FloatValue
63
+ parent: Value
64
+
65
+ - name: StringValue
66
+ parent: Value
67
+
68
+ - name: BooleanValue
69
+ parent: Value
70
+
71
+ - name: "NullValue"
72
+ parent: Value
73
+
74
+ - name: EnumValue
75
+ parent: Value
76
+
77
+ - name: ListValue
78
+ parent: Value
79
+
80
+ - name: ObjectValue
81
+ fields:
82
+ - values: list
83
+
84
+ - name: Directive
85
+ fields:
86
+ - name: literal
87
+ - arguments: list
88
+
89
+ - name: TypeCondition
90
+ fields:
91
+ - named_type
92
+
93
+ - name: InlineFragment
94
+ fields:
95
+ - type_condition?
96
+ - directives?: list
97
+ - selection_set: list
98
+
99
+ - name: FragmentSpread
100
+ fields:
101
+ - fragment_name
102
+ - directives?: list
103
+
104
+ - name: FragmentDefinition
105
+ fields:
106
+ - fragment_name
107
+ - type_condition
108
+ - directives?: list
109
+ - selection_set: list
110
+
111
+ - name: RootOperationTypeDefinition
112
+ fields:
113
+ - operation_type
114
+ - named_type
115
+
116
+ - name: SchemaDefinition
117
+ fields:
118
+ - directives?: list
119
+ - root_operation_definitions: list
120
+
121
+ - name: FieldDefinition
122
+ fields:
123
+ - description?: literal
124
+ - name: literal
125
+ - arguments_definition?: list
126
+ - type
127
+ - directives?: list
128
+
129
+ - name: InputValueDefinition
130
+ fields:
131
+ - description?: literal
132
+ - name: literal
133
+ - type
134
+ - default_value?
135
+ - directives?: list
136
+
137
+ - name: ObjectTypeDefinition
138
+ fields:
139
+ - description?: literal
140
+ - name: literal
141
+ - implements_interfaces?: list
142
+ - directives?: list
143
+ - fields_definition?: list
144
+
145
+ - name: InterfaceTypeDefinition
146
+ fields:
147
+ - description?: literal
148
+ - name: literal
149
+ - directives?: list
150
+ - fields_definition?: list
151
+
152
+ - name: UnionTypeDefinition
153
+ fields:
154
+ - description?: literal
155
+ - name: literal
156
+ - directives?: list
157
+ - union_member_types?: list
158
+
159
+ - name: ScalarTypeDefinition
160
+ fields:
161
+ - description?: literal
162
+ - name: literal
163
+ - directives?: list
164
+
165
+ - name: EnumValueDefinition
166
+ fields:
167
+ - description?: literal
168
+ - enum_value
169
+ - directives?: list
170
+
171
+ - name: EnumTypeDefinition
172
+ fields:
173
+ - description?: literal
174
+ - name: literal
175
+ - directives?: list
176
+ - enum_value_definition?: list
177
+
178
+ - name: InputObjectTypeDefinition
179
+ fields:
180
+ - description?: literal
181
+ - name: literal
182
+ - directives?: list
183
+ - input_fields_definition?: list
184
+
185
+ - name: ObjectTypeExtension
186
+ fields:
187
+ - name: literal
188
+ - implements_interfaces?: list
189
+ - directives?: list
190
+ - fields_definition?: list
191
+
192
+ - name: ExecutableDirectiveLocation
193
+ fields:
194
+ - name: literal
195
+
196
+ - name: TypeSystemDirectiveLocation
197
+ fields:
198
+ - name: literal
199
+
200
+ - name: DirectiveDefinition
201
+ fields:
202
+ - description?: literal
203
+ - name: literal
204
+ - arguments_definition?: list
205
+ - directive_locations: list