graphql 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b34cec1ffb7358b467f2fb7c00134db084793d9eb1ebe22f38f351435607c9b
4
- data.tar.gz: d15754c440968f51715c0a71f3c23ef1c5fd075793c0de11aae6477976b5aa14
3
+ metadata.gz: a10c35ffd2541c0b387e2e7d127eea0d1e2b4559fbd637288296369c0be09d0d
4
+ data.tar.gz: 34bf4d3cc5ef08bfbc065f9cdff4690dfa4b3351d46e014422304b897b531189
5
5
  SHA512:
6
- metadata.gz: f2ef024af0f5e1e261fe7b998e27d664df5f92127ffb2874135a6d7b1662763a4e2661634dd46cc67dd624b9fc8291ce1bd3488a460566bc346f9cd6edc86b43
7
- data.tar.gz: 635165d9129c2c49510fd481a2161cf425f91ff016bcdb28b8955d1c818d66885a6f7d90c5210e4433ada541d6e116b3137cb12dbdcc44c32229ac564d266b64
6
+ metadata.gz: afed371861c1dcca740f07940d7f8239e800723623d6a9eb664592b169568ab1d92e3c2ea1286ba40625e00be0b27584f94e2493479cfd119251831d90c3f0a0
7
+ data.tar.gz: 43e8362810fb7a48fcdec9f997a2b33c599e08c1276da79480e75c6fad456328775e71dc1317e98923a88b5e3169a5f9f3b491d09b943c49805d536071e0047f
@@ -33,27 +33,13 @@ module Graphql
33
33
  # Return a string UUID for `object`
34
34
  def self.id_from_object(object, type_definition, query_ctx)
35
35
  # For example, use Rails' GlobalID library (https://github.com/rails/globalid):
36
- object_id = object.to_global_id.to_s
37
- # Remove this redundant prefix to make IDs shorter:
38
- object_id = object_id.sub("gid://\#{GlobalID.app}/", "")
39
- encoded_id = Base64.urlsafe_encode64(object_id)
40
- # Remove the "=" padding
41
- encoded_id = encoded_id.sub(/=+/, "")
42
- # Add a type hint
43
- type_hint = type_definition.graphql_name.first
44
- "\#{type_hint}_\#{encoded_id}"
36
+ object.to_gid_param
45
37
  end
46
38
 
47
39
  # Given a string UUID, find the object
48
- def self.object_from_id(encoded_id_with_hint, query_ctx)
40
+ def self.object_from_id(global_id, query_ctx)
49
41
  # For example, use Rails' GlobalID library (https://github.com/rails/globalid):
50
- # Split off the type hint
51
- _type_hint, encoded_id = encoded_id_with_hint.split("_", 2)
52
- # Decode the ID
53
- id = Base64.urlsafe_decode64(encoded_id)
54
- # Rebuild it for Rails then find the object:
55
- full_global_id = "gid://\#{GlobalID.app}/\#{id}"
56
- GlobalID::Locator.locate(full_global_id)
42
+ GlobalID.find(global_id)
57
43
  end
58
44
  RUBY
59
45
  inject_into_file schema_file_path, schema_code, before: /^end\n/m, force: false
@@ -754,11 +754,16 @@ module GraphQL
754
754
  response_list = GraphQLResultArray.new(result_name, selection_result)
755
755
  response_list.graphql_non_null_list_items = inner_type.non_null?
756
756
  set_result(selection_result, result_name, response_list)
757
-
757
+ result_was_set = false
758
758
  idx = 0
759
- begin
759
+ list_value = begin
760
760
  value.each do |inner_value|
761
761
  break if dead_result?(response_list)
762
+ if !result_was_set
763
+ # Don't set the result unless `.each` is successful
764
+ set_result(selection_result, result_name, response_list)
765
+ result_was_set = true
766
+ end
762
767
  next_path = path.dup
763
768
  next_path << idx
764
769
  this_idx = idx
@@ -772,6 +777,13 @@ module GraphQL
772
777
  resolve_list_item(inner_value, inner_type, next_path, ast_node, field, owner_object, arguments, this_idx, response_list, next_selections, owner_type)
773
778
  end
774
779
  end
780
+ # Maybe the list was empty and the block was never called.
781
+ if !result_was_set
782
+ set_result(selection_result, result_name, response_list)
783
+ result_was_set = true
784
+ end
785
+
786
+ response_list
775
787
  rescue NoMethodError => err
776
788
  # Ruby 2.2 doesn't have NoMethodError#receiver, can't check that one in this case. (It's been EOL since 2017.)
777
789
  if err.name == :each && (err.respond_to?(:receiver) ? err.receiver == value : true)
@@ -781,9 +793,17 @@ module GraphQL
781
793
  # This was some other NoMethodError -- let it bubble to reveal the real error.
782
794
  raise
783
795
  end
796
+ rescue GraphQL::ExecutionError, GraphQL::UnauthorizedError => ex_err
797
+ ex_err
798
+ rescue StandardError => err
799
+ begin
800
+ query.handle_or_reraise(err)
801
+ rescue GraphQL::ExecutionError => ex_err
802
+ ex_err
803
+ end
784
804
  end
785
805
 
786
- response_list
806
+ continue_value(path, list_value, owner_type, field, inner_type.non_null?, ast_node, result_name, selection_result)
787
807
  else
788
808
  raise "Invariant: Unhandled type kind #{current_type.kind} (#{current_type})"
789
809
  end
@@ -12,7 +12,7 @@ module GraphQL
12
12
  module Language
13
13
  class Parser < Racc::Parser
14
14
 
15
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 444)
15
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 448)
16
16
 
17
17
  EMPTY_ARRAY = [].freeze
18
18
 
@@ -124,65 +124,65 @@ end
124
124
  ##### State transition tables begin ###
125
125
 
126
126
  racc_action_table = [
127
- -2, -168, 11, 284, 12, 13, 14, 11, -101, 12,
128
- 13, 14, 95, 267, -168, 94, 19, 38, 74, 75,
127
+ -2, -170, 11, 281, 12, 13, 14, 11, -101, 12,
128
+ 13, 14, 95, 269, 275, 94, 19, 38, 74, 75,
129
129
  76, 19, 77, 78, 79, 80, 15, 35, 161, 121,
130
- 35, 15, 35, 12, 13, 14, 28, 35, 179, -168,
130
+ 35, 15, 35, 12, 13, 14, 28, 35, 180, 276,
131
131
  72, 28, 35, 35, 43, 44, 45, 46, 47, 48,
132
132
  49, 50, 51, 52, 53, 54, 55, 56, 57, 61,
133
- 12, 13, 14, -101, -101, -101, 182, 72, 35, 88,
133
+ 12, 13, 14, -101, -101, 279, 183, 72, 35, 88,
134
134
  -154, 43, 44, 45, 46, 47, 48, 49, 50, 51,
135
135
  52, 53, 54, 55, 56, 57, 91, 12, 13, 14,
136
- -101, 67, 276, 90, 277, 72, 72, 72, 43, 44,
136
+ 280, 67, 90, 99, 35, 72, 72, -101, 43, 44,
137
137
  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
138
- 55, 56, 57, 226, 12, 13, 14, -168, 67, -168,
139
- 282, 35, 72, 35, -101, 43, 44, 45, 46, 47,
138
+ 55, 56, 57, 227, 12, 13, 14, 72, 67, 35,
139
+ 175, 12, 13, 14, 72, 43, 44, 45, 46, 47,
140
140
  48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
141
- 12, 13, 14, 283, 72, 67, 35, 99, 35, 35,
142
- 72, 43, 44, 45, 46, 47, 48, 49, 50, 51,
143
- 52, 53, 54, 55, 56, 57, 222, 102, 12, 13,
144
- 14, 67, 35, 220, 298, 299, 221, 303, 304, 203,
145
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 200,
146
- 201, 202, 210, 211, 207, 208, 209, 219, 222, 72,
147
- 12, 13, 14, 35, 35, 220, 35, 35, 221, 258,
148
- 117, 203, 44, 45, 46, 47, 48, 49, 50, 51,
149
- 52, 200, 201, 202, 210, 211, 207, 208, 209, 219,
150
- 222, 72, 12, 13, 14, 121, 72, 220, 72, 132,
151
- 221, 288, 95, 203, 44, 45, 46, 47, 48, 49,
152
- 50, 51, 52, 200, 201, 202, 210, 211, 207, 208,
153
- 209, 219, 308, 139, 12, 13, 14, 175, 12, 13,
154
- 14, 72, 221, 143, 143, 203, 44, 45, 46, 47,
155
- 48, 49, 50, 51, 52, 200, 201, 202, 210, 211,
156
- 207, 208, 209, 219, 222, 72, 12, 13, 14, 72,
157
- 72, 220, 72, 143, 221, 143, 72, 203, 44, 45,
158
- 46, 47, 48, 49, 50, 51, 52, 200, 201, 202,
159
- 210, 211, 207, 208, 209, 219, 222, 72, 12, 13,
160
- 14, 72, 132, 220, 132, 95, 221, 169, 170, 203,
161
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 200,
162
- 201, 202, 210, 211, 207, 208, 209, 219, 308, 72,
163
- 12, 13, 14, 229, 12, 13, 14, 72, 221, 177,
164
- 72, 203, 44, 45, 46, 47, 48, 49, 50, 51,
165
- 52, 200, 201, 202, 210, 211, 207, 208, 209, 219,
166
- 12, 13, 14, 81, 82, 72, 83, 84, 85, 86,
167
- 87, 97, 44, 45, 46, 47, 48, 49, 50, 51,
168
- 52, 53, 54, 55, 56, 57, 261, 12, 13, 14,
169
- 72, 12, 13, 14, 12, 13, 14, 72, 43, 44,
141
+ 12, 13, 14, 81, 82, 67, 83, 84, 85, 86,
142
+ 87, 43, 44, 45, 46, 47, 48, 49, 50, 51,
143
+ 52, 53, 54, 55, 56, 57, 223, 102, 12, 13,
144
+ 14, 67, 72, 221, 117, 72, 222, 121, 72, 204,
145
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 201,
146
+ 202, 203, 211, 212, 208, 209, 210, 220, 223, 72,
147
+ 12, 13, 14, 132, 95, 221, 139, 72, 222, 259,
148
+ 143, 204, 44, 45, 46, 47, 48, 49, 50, 51,
149
+ 52, 201, 202, 203, 211, 212, 208, 209, 210, 220,
150
+ 223, 143, 12, 13, 14, 72, 72, 221, 72, 72,
151
+ 222, 285, 143, 204, 44, 45, 46, 47, 48, 49,
152
+ 50, 51, 52, 201, 202, 203, 211, 212, 208, 209,
153
+ 210, 220, 301, 143, 12, 13, 14, 230, 12, 13,
154
+ 14, 72, 222, 72, 72, 204, 44, 45, 46, 47,
155
+ 48, 49, 50, 51, 52, 201, 202, 203, 211, 212,
156
+ 208, 209, 210, 220, 223, 132, 12, 13, 14, 132,
157
+ 95, 221, 169, 170, 222, 72, 72, 204, 44, 45,
158
+ 46, 47, 48, 49, 50, 51, 52, 201, 202, 203,
159
+ 211, 212, 208, 209, 210, 220, 223, 177, 12, 13,
160
+ 14, 72, 72, 221, 72, -154, 222, 189, 190, 204,
161
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 201,
162
+ 202, 203, 211, 212, 208, 209, 210, 220, 301, 191,
163
+ 12, 13, 14, 12, 13, 14, 72, 72, 222, 194,
164
+ 195, 204, 44, 45, 46, 47, 48, 49, 50, 51,
165
+ 52, 201, 202, 203, 211, 212, 208, 209, 210, 220,
166
+ 12, 13, 14, 12, 13, 14, 196, 197, 199, 72,
167
+ 225, 97, 44, 45, 46, 47, 48, 49, 50, 51,
168
+ 52, 53, 54, 55, 56, 57, 262, 12, 13, 14,
169
+ 72, 132, 132, 72, 180, 237, 72, 180, 43, 44,
170
170
  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
171
- 55, 56, 57, 290, 12, 13, 14, -154, 188, 189,
172
- 190, 72, 72, 193, 194, 43, 44, 45, 46, 47,
171
+ 55, 56, 57, 287, 12, 13, 14, 35, 35, 180,
172
+ 180, 35, 35, 35, 255, 43, 44, 45, 46, 47,
173
173
  48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
174
- 294, 12, 13, 14, 195, 196, 198, 72, 224, 132,
175
- 132, 233, 43, 44, 45, 46, 47, 48, 49, 50,
176
- 51, 52, 53, 54, 55, 56, 57, 316, 12, 13,
177
- 14, 236, 238, 35, 35, 247, 248, 35, 35, 43,
174
+ 291, 12, 13, 14, 132, 237, 272, 272, 282, 284,
175
+ 290, 197, 43, 44, 45, 46, 47, 48, 49, 50,
176
+ 51, 52, 53, 54, 55, 56, 57, 309, 12, 13,
177
+ 14, 72, 297, 302, 305, 306, 308, 284, 72, 43,
178
178
  44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
179
- 54, 55, 56, 57, 12, 13, 14, 35, 254, 132,
180
- 236, 273, 273, 285, 287, 43, 44, 45, 46, 47,
179
+ 54, 55, 56, 57, 12, 13, 14, 72, nil, nil,
180
+ nil, nil, nil, nil, nil, 43, 44, 45, 46, 47,
181
181
  48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
182
- 12, 13, 14, 293, 196, 72, 302, 309, 312, 313,
183
- 315, 287, 44, 45, 46, 47, 48, 49, 50, 51,
184
- 52, 53, 54, 55, 56, 57, 12, 13, 14, 72,
185
- 72, nil, nil, nil, nil, nil, nil, 43, 44, 45,
182
+ 12, 13, 14, nil, nil, nil, nil, nil, nil, nil,
183
+ nil, nil, 44, 45, 46, 47, 48, 49, 50, 51,
184
+ 52, 53, 54, 55, 56, 57, 12, 13, 14, nil,
185
+ nil, nil, nil, nil, nil, nil, nil, 43, 44, 45,
186
186
  46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
187
187
  56, 57, 12, 13, 14, nil, nil, nil, nil, nil,
188
188
  nil, nil, nil, 43, 44, 45, 46, 47, 48, 49,
@@ -276,71 +276,71 @@ racc_action_table = [
276
276
  nil, nil, nil, nil, nil, nil, nil, 43, 44, 45,
277
277
  46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
278
278
  56, 57, 12, 13, 14, nil, nil, nil, nil, nil,
279
- nil, nil, nil, 203, 44, 45, 46, 47, 48, 49,
280
- 50, 51, 52, 200, 201, 202, -160, nil, nil, nil,
279
+ nil, nil, nil, 204, 44, 45, 46, 47, 48, 49,
280
+ 50, 51, 52, 201, 202, 203, -160, nil, nil, nil,
281
281
  -160, nil, nil, nil, nil, nil, -160, nil, -160, -160,
282
282
  -160 ]
283
283
 
284
284
  racc_action_check = [
285
- 3, 179, 3, 252, 3, 3, 3, 0, 103, 0,
286
- 0, 0, 66, 230, 233, 66, 3, 1, 28, 28,
287
- 28, 0, 28, 28, 28, 28, 3, 252, 119, 119,
288
- 179, 0, 3, 143, 143, 143, 3, 0, 141, 238,
289
- 103, 0, 230, 233, 143, 143, 143, 143, 143, 143,
285
+ 3, 180, 3, 253, 3, 3, 3, 0, 103, 0,
286
+ 0, 0, 66, 232, 244, 66, 3, 1, 28, 28,
287
+ 28, 0, 28, 28, 28, 28, 3, 253, 119, 119,
288
+ 180, 0, 3, 143, 143, 143, 3, 0, 141, 245,
289
+ 103, 0, 232, 244, 143, 143, 143, 143, 143, 143,
290
290
  143, 143, 143, 143, 143, 143, 143, 143, 143, 11,
291
- 11, 11, 11, 148, 150, 180, 143, 19, 238, 38,
291
+ 11, 11, 11, 148, 150, 251, 143, 19, 245, 38,
292
292
  141, 11, 11, 11, 11, 11, 11, 11, 11, 11,
293
293
  11, 11, 11, 11, 11, 11, 60, 60, 60, 60,
294
- 186, 11, 243, 40, 244, 148, 150, 180, 60, 60,
294
+ 252, 11, 40, 68, 251, 148, 150, 146, 60, 60,
295
295
  60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
296
- 60, 60, 60, 173, 173, 173, 173, 247, 60, 248,
297
- 250, 243, 186, 244, 146, 173, 173, 173, 173, 173,
296
+ 60, 60, 60, 173, 173, 173, 173, 146, 60, 252,
297
+ 136, 136, 136, 136, 70, 173, 173, 173, 173, 173,
298
298
  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
299
- 132, 132, 132, 251, 146, 173, 247, 68, 248, 250,
300
- 70, 132, 132, 132, 132, 132, 132, 132, 132, 132,
299
+ 132, 132, 132, 37, 37, 173, 37, 37, 37, 37,
300
+ 37, 132, 132, 132, 132, 132, 132, 132, 132, 132,
301
301
  132, 132, 132, 132, 132, 132, 169, 73, 169, 169,
302
- 169, 132, 251, 169, 270, 272, 169, 280, 281, 169,
302
+ 169, 132, 74, 169, 87, 89, 169, 90, 93, 169,
303
303
  169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
304
- 169, 169, 169, 169, 169, 169, 169, 169, 221, 74,
305
- 221, 221, 221, 270, 272, 221, 280, 281, 221, 221,
306
- 87, 221, 221, 221, 221, 221, 221, 221, 221, 221,
307
- 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
308
- 259, 89, 259, 259, 259, 90, 93, 259, 96, 98,
309
- 259, 259, 101, 259, 259, 259, 259, 259, 259, 259,
310
- 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
311
- 259, 259, 287, 104, 287, 287, 287, 136, 136, 136,
312
- 136, 105, 287, 106, 107, 287, 287, 287, 287, 287,
313
- 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
314
- 287, 287, 287, 287, 293, 108, 293, 293, 293, 109,
315
- 110, 293, 111, 112, 293, 113, 114, 293, 293, 293,
316
- 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
317
- 293, 293, 293, 293, 293, 293, 309, 115, 309, 309,
318
- 309, 116, 118, 309, 122, 123, 309, 126, 128, 309,
319
- 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
320
- 309, 309, 309, 309, 309, 309, 309, 309, 312, 131,
321
- 312, 312, 312, 178, 178, 178, 178, 134, 312, 138,
322
- 140, 312, 312, 312, 312, 312, 312, 312, 312, 312,
323
- 312, 312, 312, 312, 312, 312, 312, 312, 312, 312,
324
- 67, 67, 67, 37, 37, 142, 37, 37, 37, 37,
325
- 37, 67, 67, 67, 67, 67, 67, 67, 67, 67,
326
- 67, 67, 67, 67, 67, 67, 222, 222, 222, 222,
327
- 67, 102, 102, 102, 139, 139, 139, 144, 222, 222,
304
+ 169, 169, 169, 169, 169, 169, 169, 169, 222, 96,
305
+ 222, 222, 222, 98, 101, 222, 104, 105, 222, 222,
306
+ 106, 222, 222, 222, 222, 222, 222, 222, 222, 222,
328
307
  222, 222, 222, 222, 222, 222, 222, 222, 222, 222,
329
- 222, 222, 222, 262, 262, 262, 262, 145, 147, 149,
330
- 151, 153, 155, 156, 157, 262, 262, 262, 262, 262,
331
- 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
332
- 265, 265, 265, 265, 158, 159, 163, 166, 171, 172,
333
- 174, 181, 265, 265, 265, 265, 265, 265, 265, 265,
334
- 265, 265, 265, 265, 265, 265, 265, 308, 308, 308,
335
- 308, 183, 187, 189, 190, 191, 192, 194, 195, 308,
336
- 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
337
- 308, 308, 308, 308, 10, 10, 10, 196, 197, 199,
338
- 234, 239, 249, 253, 255, 10, 10, 10, 10, 10,
308
+ 260, 107, 260, 260, 260, 108, 109, 260, 110, 111,
309
+ 260, 260, 112, 260, 260, 260, 260, 260, 260, 260,
310
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
311
+ 260, 260, 284, 113, 284, 284, 284, 178, 178, 178,
312
+ 178, 114, 284, 115, 116, 284, 284, 284, 284, 284,
313
+ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,
314
+ 284, 284, 284, 284, 290, 118, 290, 290, 290, 122,
315
+ 123, 290, 126, 128, 290, 131, 134, 290, 290, 290,
316
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
317
+ 290, 290, 290, 290, 290, 290, 302, 138, 302, 302,
318
+ 302, 140, 142, 302, 144, 145, 302, 147, 149, 302,
319
+ 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
320
+ 302, 302, 302, 302, 302, 302, 302, 302, 305, 151,
321
+ 305, 305, 305, 102, 102, 102, 153, 155, 305, 156,
322
+ 157, 305, 305, 305, 305, 305, 305, 305, 305, 305,
323
+ 305, 305, 305, 305, 305, 305, 305, 305, 305, 305,
324
+ 67, 67, 67, 139, 139, 139, 158, 159, 163, 166,
325
+ 171, 67, 67, 67, 67, 67, 67, 67, 67, 67,
326
+ 67, 67, 67, 67, 67, 67, 223, 223, 223, 223,
327
+ 67, 172, 174, 181, 182, 184, 187, 188, 223, 223,
328
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
329
+ 223, 223, 223, 263, 263, 263, 263, 190, 191, 192,
330
+ 193, 195, 196, 197, 198, 263, 263, 263, 263, 263,
331
+ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
332
+ 266, 266, 266, 266, 200, 235, 240, 250, 254, 256,
333
+ 265, 268, 266, 266, 266, 266, 266, 266, 266, 266,
334
+ 266, 266, 266, 266, 266, 266, 266, 301, 301, 301,
335
+ 301, 273, 278, 289, 293, 294, 298, 307, 311, 301,
336
+ 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
337
+ 301, 301, 301, 301, 10, 10, 10, 312, nil, nil,
338
+ nil, nil, nil, nil, nil, 10, 10, 10, 10, 10,
339
339
  10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
340
- 15, 15, 15, 264, 269, 274, 279, 292, 296, 297,
341
- 305, 314, 15, 15, 15, 15, 15, 15, 15, 15,
342
- 15, 15, 15, 15, 15, 15, 72, 72, 72, 318,
343
- 319, nil, nil, nil, nil, nil, nil, 72, 72, 72,
340
+ 15, 15, 15, nil, nil, nil, nil, nil, nil, nil,
341
+ nil, nil, 15, 15, 15, 15, 15, 15, 15, 15,
342
+ 15, 15, 15, 15, 15, 15, 72, 72, 72, nil,
343
+ nil, nil, nil, nil, nil, nil, nil, 72, 72, 72,
344
344
  72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
345
345
  72, 72, 75, 75, 75, nil, nil, nil, nil, nil,
346
346
  nil, nil, nil, 75, 75, 75, 75, 75, 75, 75,
@@ -396,212 +396,206 @@ racc_action_check = [
396
396
  130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
397
397
  130, 130, 177, 177, 177, nil, nil, nil, nil, nil,
398
398
  nil, nil, nil, 177, 177, 177, 177, 177, 177, 177,
399
- 177, 177, 177, 177, 177, 177, 177, 177, 182, 182,
400
- 182, nil, nil, nil, nil, nil, nil, nil, nil, 182,
401
- 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
402
- 182, 182, 182, 182, 184, 184, 184, nil, nil, nil,
403
- nil, nil, nil, nil, nil, 184, 184, 184, 184, 184,
404
- 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
405
- 188, 188, 188, nil, nil, nil, nil, nil, nil, nil,
406
- nil, 188, 188, 188, 188, 188, 188, 188, 188, 188,
407
- 188, 188, 188, 188, 188, 188, 193, 193, 193, nil,
408
- nil, nil, nil, nil, nil, nil, nil, 193, 193, 193,
409
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
410
- 193, 193, 198, 198, 198, nil, nil, nil, nil, nil,
411
- 198, nil, nil, 198, 198, 198, 198, 198, 198, 198,
412
- 198, 198, 198, 198, 198, 198, 198, 198, 220, 220,
413
- 220, nil, nil, nil, nil, nil, nil, nil, nil, 220,
414
- 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
415
- 220, 220, 220, 220, 231, 231, 231, nil, nil, nil,
399
+ 177, 177, 177, 177, 177, 177, 177, 177, 183, 183,
400
+ 183, nil, nil, nil, nil, nil, nil, nil, nil, 183,
401
+ 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
402
+ 183, 183, 183, 183, 185, 185, 185, nil, nil, nil,
403
+ nil, nil, nil, nil, nil, 185, 185, 185, 185, 185,
404
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
405
+ 189, 189, 189, nil, nil, nil, nil, nil, nil, nil,
406
+ nil, 189, 189, 189, 189, 189, 189, 189, 189, 189,
407
+ 189, 189, 189, 189, 189, 189, 194, 194, 194, nil,
408
+ nil, nil, nil, nil, nil, nil, nil, 194, 194, 194,
409
+ 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
410
+ 194, 194, 199, 199, 199, nil, nil, nil, nil, nil,
411
+ 199, nil, nil, 199, 199, 199, 199, 199, 199, 199,
412
+ 199, 199, 199, 199, 199, 199, 199, 199, 221, 221,
413
+ 221, nil, nil, nil, nil, nil, nil, nil, nil, 221,
414
+ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
415
+ 221, 221, 221, 221, 231, 231, 231, nil, nil, nil,
416
416
  nil, nil, nil, nil, nil, 231, 231, 231, 231, 231,
417
417
  231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
418
- 236, 236, 236, nil, nil, nil, nil, nil, nil, nil,
419
- nil, 236, 236, 236, 236, 236, 236, 236, 236, 236,
420
- 236, 236, 236, 236, 236, 236, 245, 245, 245, nil,
421
- nil, nil, nil, nil, nil, nil, nil, 245, 245, 245,
422
- 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
423
- 245, 245, 273, 273, 273, nil, nil, nil, nil, nil,
424
- nil, nil, nil, 273, 273, 273, 273, 273, 273, 273,
425
- 273, 273, 273, 273, 273, 273, 273, 273, 285, 285,
426
- 285, nil, nil, nil, nil, nil, nil, nil, nil, 285,
427
- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
428
- 285, 285, 285, 285, 302, 302, 302, nil, nil, nil,
429
- nil, nil, 302, nil, nil, 302, 302, 302, 302, 302,
430
- 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
431
- 313, 313, 313, nil, nil, nil, nil, nil, 313, nil,
432
- nil, 313, 313, 313, 313, 313, 313, 313, 313, 313,
433
- 313, 313, 313, 313, 313, 313, 315, 315, 315, nil,
434
- nil, nil, nil, nil, nil, nil, nil, 315, 315, 315,
435
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
436
- 315, 315, 241, 241, 241, nil, nil, nil, nil, nil,
437
- nil, nil, nil, 241, 241, 241, 241, 241, 241, 241,
438
- 241, 241, 241, 241, 241, 241, 185, nil, nil, nil,
439
- 185, nil, nil, nil, nil, nil, 185, nil, 185, 185,
440
- 185 ]
418
+ 237, 237, 237, nil, nil, nil, nil, nil, nil, nil,
419
+ nil, 237, 237, 237, 237, 237, 237, 237, 237, 237,
420
+ 237, 237, 237, 237, 237, 237, 246, 246, 246, nil,
421
+ nil, nil, nil, nil, nil, nil, nil, 246, 246, 246,
422
+ 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
423
+ 246, 246, 272, 272, 272, nil, nil, nil, nil, nil,
424
+ nil, nil, nil, 272, 272, 272, 272, 272, 272, 272,
425
+ 272, 272, 272, 272, 272, 272, 272, 272, 282, 282,
426
+ 282, nil, nil, nil, nil, nil, nil, nil, nil, 282,
427
+ 282, 282, 282, 282, 282, 282, 282, 282, 282, 282,
428
+ 282, 282, 282, 282, 297, 297, 297, nil, nil, nil,
429
+ nil, nil, 297, nil, nil, 297, 297, 297, 297, 297,
430
+ 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
431
+ 306, 306, 306, nil, nil, nil, nil, nil, 306, nil,
432
+ nil, 306, 306, 306, 306, 306, 306, 306, 306, 306,
433
+ 306, 306, 306, 306, 306, 306, 308, 308, 308, nil,
434
+ nil, nil, nil, nil, nil, nil, nil, 308, 308, 308,
435
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
436
+ 308, 308, 242, 242, 242, nil, nil, nil, nil, nil,
437
+ nil, nil, nil, 242, 242, 242, 242, 242, 242, 242,
438
+ 242, 242, 242, 242, 242, 242, 186, nil, nil, nil,
439
+ 186, nil, nil, nil, nil, nil, 186, nil, 186, 186,
440
+ 186 ]
441
441
 
442
442
  racc_action_pointer = [
443
443
  5, 17, nil, 0, nil, nil, nil, nil, nil, nil,
444
444
  520, 56, nil, nil, nil, 546, nil, nil, nil, 33,
445
445
  nil, nil, nil, nil, nil, nil, nil, nil, 2, nil,
446
- nil, nil, nil, nil, nil, nil, nil, 376, 69, nil,
447
- 86, nil, nil, nil, nil, nil, nil, nil, nil, nil,
448
- nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
449
- 83, nil, nil, nil, nil, nil, 5, 386, 132, nil,
450
- 116, nil, 572, 165, 165, 598, 624, 650, 676, 702,
451
- 728, 754, 780, 806, 832, 858, 884, 176, nil, 197,
452
- 226, nil, nil, 202, 910, 936, 204, 962, 237, 988,
453
- nil, 235, 417, 6, 261, 237, 254, 255, 261, 265,
454
- 266, 268, 284, 286, 272, 293, 297, 1014, 330, 20,
455
- nil, 1040, 332, 328, 1066, nil, 327, nil, 327, nil,
456
- 1092, 325, 136, nil, 333, nil, 264, nil, 359, 420,
457
- 336, 36, 361, 29, 393, 413, 110, 434, 61, 447,
458
- 62, 448, nil, 417, nil, 418, 439, 452, 472, 468,
459
- nil, nil, nil, 466, nil, nil, 443, nil, nil, 164,
460
- nil, 465, 477, 110, 478, nil, nil, 1118, 360, -2,
461
- 63, 479, 1144, 464, 1170, 1521, 88, 500, 1196, 471,
462
- 472, 503, 504, 1222, 475, 476, 495, 501, 1248, 527,
446
+ nil, nil, nil, nil, nil, nil, nil, 126, 69, nil,
447
+ 85, nil, nil, nil, nil, nil, nil, nil, nil, nil,
463
448
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
449
+ 83, nil, nil, nil, nil, nil, 5, 386, 78, nil,
450
+ 90, nil, 572, 165, 138, 598, 624, 650, 676, 702,
451
+ 728, 754, 780, 806, 832, 858, 884, 140, nil, 141,
452
+ 168, nil, nil, 144, 910, 936, 165, 962, 201, 988,
453
+ nil, 197, 359, 6, 204, 173, 191, 212, 201, 202,
454
+ 204, 205, 223, 244, 237, 239, 240, 1014, 293, 20,
455
+ nil, 1040, 297, 293, 1066, nil, 292, nil, 292, nil,
456
+ 1092, 271, 136, nil, 272, nil, 117, nil, 317, 389,
457
+ 297, 36, 298, 29, 300, 301, 83, 323, 61, 336,
458
+ 62, 357, nil, 332, nil, 333, 355, 368, 394, 390,
459
+ nil, nil, nil, 388, nil, nil, 365, nil, nil, 164,
460
+ nil, 387, 419, 110, 420, nil, nil, 1118, 264, nil,
461
+ -2, 389, 422, 1144, 388, 1170, 1521, 392, 425, 1196,
462
+ 415, 416, 447, 448, 1222, 419, 420, 421, 427, 1248,
463
+ 472, nil, nil, nil, nil, nil, nil, nil, nil, nil,
464
464
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
465
- 1274, 196, 413, nil, nil, nil, nil, nil, nil, nil,
466
- 10, 1300, nil, 11, 493, nil, 1326, nil, 36, 493,
467
- nil, 1508, nil, 89, 91, 1352, nil, 114, 116, 494,
468
- 117, 140, -5, 518, nil, 520, nil, nil, nil, 228,
469
- nil, nil, 440, nil, 543, 467, nil, nil, nil, 547,
470
- 171, nil, 172, 1378, 521, nil, nil, nil, nil, 546,
471
- 174, 175, nil, nil, nil, 1404, nil, 260, nil, nil,
472
- nil, nil, 547, 292, nil, nil, 548, 549, nil, nil,
473
- nil, nil, 1430, nil, nil, 522, nil, nil, 494, 324,
474
- nil, nil, 356, 1456, 547, 1482, nil, nil, 545, 546,
475
- nil, nil, nil ]
465
+ nil, 1274, 196, 413, nil, nil, nil, nil, nil, nil,
466
+ nil, 1300, 10, nil, nil, 438, nil, 1326, nil, nil,
467
+ 438, nil, 1508, nil, 11, 36, 1352, nil, nil, nil,
468
+ 439, 62, 87, -5, 463, nil, 465, nil, nil, nil,
469
+ 228, nil, nil, 440, nil, 470, 467, nil, 474, nil,
470
+ nil, nil, 1378, 467, nil, nil, nil, nil, 492, nil,
471
+ nil, nil, 1404, nil, 260, nil, nil, nil, nil, 493,
472
+ 292, nil, nil, 494, 495, nil, nil, 1430, 468, nil,
473
+ nil, 494, 324, nil, nil, 356, 1456, 493, 1482, nil,
474
+ nil, 474, 493, nil, nil, nil ]
476
475
 
477
476
  racc_action_default = [
478
- -149, -182, -1, -149, -3, -5, -6, -7, -8, -9,
479
- -16, -182, -13, -14, -15, -109, -111, -112, -113, -100,
480
- -118, -119, -120, -121, -122, -123, -124, -125, -182, -128,
481
- -129, -130, -131, -132, -133, -148, -150, -182, -182, -4,
477
+ -149, -184, -1, -149, -3, -5, -6, -7, -8, -9,
478
+ -16, -184, -13, -14, -15, -109, -111, -112, -113, -100,
479
+ -118, -119, -120, -121, -122, -123, -124, -125, -184, -128,
480
+ -129, -130, -131, -132, -133, -148, -150, -184, -184, -4,
482
481
  -18, -17, -39, -40, -41, -42, -43, -44, -45, -46,
483
482
  -47, -48, -49, -50, -51, -52, -53, -54, -55, -56,
484
- -182, -12, -32, -34, -35, -36, -66, -100, -182, -110,
485
- -101, -102, -182, -182, -100, -182, -182, -182, -182, -182,
486
- -182, -182, -182, -182, -182, -182, -182, -182, 323, -100,
487
- -182, -11, -33, -100, -182, -182, -100, -182, -182, -182,
488
- -103, -66, -182, -127, -182, -182, -153, -153, -100, -100,
489
- -100, -100, -153, -153, -100, -100, -100, -182, -182, -182,
490
- -20, -182, -30, -66, -182, -68, -182, -105, -23, -25,
491
- -182, -100, -182, -107, -100, -104, -182, -115, -182, -182,
492
- -134, -138, -100, -182, -100, -141, -143, -182, -145, -182,
493
- -147, -182, -151, -100, -154, -100, -182, -182, -182, -165,
494
- -10, -19, -21, -182, -31, -37, -100, -67, -69, -182,
495
- -24, -182, -182, -182, -182, -114, -116, -182, -182, -149,
496
- -137, -182, -182, -156, -157, -158, -140, -182, -182, -149,
497
- -149, -182, -182, -182, -149, -149, -149, -178, -182, -30,
498
- -57, -58, -59, -60, -61, -62, -70, -71, -72, -73,
499
- -74, -75, -76, -77, -78, -79, -80, -81, -82, -83,
500
- -182, -182, -182, -99, -26, -106, -29, -108, -117, -126,
501
- -149, -182, -169, -149, -155, -158, -182, -161, -149, -142,
502
- -172, -182, -64, -149, -149, -182, -163, -149, -149, -174,
503
- -149, -149, -149, -182, -179, -27, -38, -84, -85, -182,
504
- -87, -89, -182, -91, -182, -182, -96, -135, -170, -165,
505
- -149, -159, -149, -182, -100, -65, -144, -146, -164, -182,
506
- -149, -149, -175, -176, -166, -182, -22, -182, -86, -88,
507
- -90, -92, -182, -182, -95, -97, -182, -182, -136, -139,
508
- -173, -63, -182, -152, -171, -177, -180, -28, -182, -182,
509
- -80, -93, -182, -182, -27, -182, -94, -98, -100, -100,
510
- -181, -167, -162 ]
483
+ -184, -12, -32, -34, -35, -36, -66, -100, -184, -110,
484
+ -101, -102, -184, -184, -100, -184, -184, -184, -184, -184,
485
+ -184, -184, -184, -184, -184, -184, -184, -184, 316, -100,
486
+ -184, -11, -33, -100, -184, -184, -100, -184, -184, -184,
487
+ -103, -66, -184, -127, -184, -184, -153, -153, -100, -100,
488
+ -100, -100, -153, -153, -100, -100, -100, -184, -184, -184,
489
+ -20, -184, -30, -66, -184, -68, -184, -105, -23, -25,
490
+ -184, -100, -184, -107, -100, -104, -184, -115, -184, -184,
491
+ -134, -138, -100, -184, -100, -141, -143, -184, -145, -184,
492
+ -147, -184, -151, -100, -154, -100, -184, -184, -184, -165,
493
+ -10, -19, -21, -184, -31, -37, -100, -67, -69, -184,
494
+ -24, -184, -184, -184, -184, -114, -116, -184, -184, -135,
495
+ -149, -101, -168, -184, -156, -157, -158, -101, -168, -184,
496
+ -149, -149, -168, -168, -184, -149, -149, -149, -180, -184,
497
+ -30, -57, -58, -59, -60, -61, -62, -70, -71, -72,
498
+ -73, -74, -75, -76, -77, -78, -79, -80, -81, -82,
499
+ -83, -184, -184, -184, -99, -26, -106, -29, -108, -117,
500
+ -126, -184, -149, -171, -136, -155, -158, -184, -161, -139,
501
+ -142, -174, -184, -64, -149, -149, -184, -163, -152, -173,
502
+ -176, -149, -149, -149, -184, -181, -27, -38, -84, -85,
503
+ -184, -87, -89, -184, -91, -184, -184, -96, -165, -169,
504
+ -172, -159, -184, -100, -65, -144, -146, -164, -184, -177,
505
+ -178, -166, -184, -22, -184, -86, -88, -90, -92, -184,
506
+ -184, -95, -97, -184, -184, -175, -63, -184, -179, -182,
507
+ -28, -184, -184, -80, -93, -184, -184, -27, -184, -94,
508
+ -98, -100, -100, -183, -167, -162 ]
511
509
 
512
510
  racc_goto_table = [
513
- 10, 41, 66, 10, 131, 92, 134, 197, 60, 206,
514
- 103, 37, 165, 69, 37, 176, 263, 136, 133, 183,
515
- 286, 120, 307, 125, 93, 278, 4, 275, 310, 39,
516
- 243, 205, 278, 278, 275, 250, 73, 171, 160, 141,
517
- 145, 140, 142, 144, 146, 148, 150, 317, 153, 155,
518
- 162, 66, 168, 1, 178, 239, 291, 176, 234, 135,
519
- 249, 260, 2, 101, 3, 96, 105, 106, 107, 108,
520
- 109, 110, 111, 112, 113, 114, 115, 116, 180, 319,
521
- 186, 166, 40, 205, 98, 123, 126, 100, 89, 256,
522
- 119, 104, 225, 274, 227, 268, 124, 259, 262, 289,
523
- 295, 68, 138, 205, 184, 255, 118, 253, 159, 305,
524
- 122, nil, 163, 127, nil, 126, nil, 297, 92, nil,
525
- 100, 205, 230, 66, nil, 147, 149, 151, 152, 173,
526
- nil, 156, 157, 158, 185, 268, 138, 268, 244, 138,
527
- nil, nil, nil, 251, 252, 268, 268, nil, 172, 205,
528
- nil, 174, nil, nil, nil, 205, nil, 100, nil, 181,
529
- nil, 187, nil, 100, 66, 100, nil, 100, 228, 204,
530
- 191, 205, 192, 235, 205, 237, 270, nil, 138, 240,
531
- nil, 272, nil, 199, 240, nil, nil, nil, nil, nil,
532
- 280, 281, nil, nil, nil, nil, nil, 100, nil, nil,
533
- 241, 245, nil, 100, nil, 241, 245, 245, nil, 314,
534
- nil, 257, nil, 264, nil, nil, nil, nil, nil, nil,
535
- 318, 204, 269, nil, nil, nil, nil, 271, nil, nil,
536
- nil, nil, nil, nil, nil, nil, 279, nil, nil, nil,
537
- nil, 204, nil, nil, nil, nil, nil, nil, nil, nil,
538
- nil, nil, nil, 292, 241, 245, 296, nil, nil, 204,
539
- nil, 241, 245, 245, 300, nil, nil, nil, nil, nil,
540
- nil, nil, nil, nil, nil, nil, 306, nil, nil, nil,
541
- nil, nil, nil, nil, nil, nil, nil, 204, nil, nil,
542
- nil, 301, nil, 204, nil, nil, nil, nil, nil, 296,
543
- nil, nil, nil, nil, nil, nil, 320, nil, nil, 204,
544
- nil, nil, 204, nil, nil, nil, nil, nil, nil, nil,
511
+ 10, 198, 60, 10, 37, 92, 207, 37, 41, 66,
512
+ 165, 93, 69, 206, 131, 233, 134, 73, 283, 176,
513
+ 100, 120, 264, 184, 277, 133, 125, 300, 274, 141,
514
+ 145, 277, 277, 303, 136, 274, 142, 144, 4, 244,
515
+ 1, 39, 153, 155, 251, 160, 135, 171, 310, 240,
516
+ 162, 245, 2, 100, 250, 168, 252, 253, 66, 261,
517
+ 3, 176, 288, 235, 96, 98, 206, 270, 166, 312,
518
+ 101, 178, 104, 105, 106, 107, 108, 109, 110, 111,
519
+ 112, 113, 114, 115, 116, 40, 206, 118, 257, 89,
520
+ 100, 122, 123, 126, 127, 119, 100, 286, 100, 226,
521
+ 100, 228, 138, 273, 206, 124, 147, 149, 151, 152,
522
+ 294, 260, 156, 157, 158, 159, 256, 263, 92, 163,
523
+ 292, 103, 126, 173, 68, 179, 185, 232, 206, 172,
524
+ 66, 100, 174, 254, 206, 298, 138, 100, nil, 138,
525
+ 182, 186, 188, nil, nil, nil, 206, nil, nil, 206,
526
+ nil, 192, 140, 193, nil, 146, 148, 150, nil, nil,
527
+ nil, nil, nil, nil, 200, nil, 234, nil, nil, 205,
528
+ nil, 66, 239, nil, nil, 229, 248, 249, 138, nil,
529
+ nil, 236, nil, 238, 231, nil, nil, 241, nil, 181,
530
+ nil, 187, 241, nil, 242, nil, nil, nil, nil, 242,
545
531
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
546
- nil, nil, nil, nil, nil, 321, 322 ]
532
+ nil, nil, nil, nil, 307, nil, nil, nil, nil, 258,
533
+ nil, 265, 205, 311, nil, nil, nil, nil, nil, 268,
534
+ nil, nil, nil, nil, nil, 271, 231, nil, nil, nil,
535
+ nil, nil, 205, nil, 278, nil, nil, nil, 242, nil,
536
+ nil, nil, nil, nil, nil, 242, nil, nil, nil, nil,
537
+ 205, 289, nil, nil, 293, nil, nil, nil, nil, nil,
538
+ 295, 296, nil, nil, nil, nil, nil, nil, nil, nil,
539
+ 299, nil, nil, nil, 205, nil, nil, nil, nil, nil,
540
+ 205, nil, nil, nil, nil, nil, nil, nil, nil, 293,
541
+ nil, nil, 205, nil, nil, 205, 313, nil, nil, 314,
542
+ 315 ]
547
543
 
548
544
  racc_goto_check = [
549
- 10, 16, 16, 10, 19, 24, 19, 80, 15, 37,
550
- 49, 33, 23, 29, 33, 56, 46, 55, 14, 77,
551
- 20, 18, 22, 36, 28, 79, 4, 32, 22, 4,
552
- 34, 30, 79, 79, 32, 34, 13, 19, 14, 71,
553
- 71, 49, 73, 73, 49, 49, 49, 22, 73, 73,
554
- 18, 16, 36, 1, 55, 74, 46, 56, 77, 28,
555
- 74, 37, 2, 16, 3, 29, 16, 16, 16, 16,
556
- 16, 16, 16, 16, 16, 16, 16, 16, 49, 20,
557
- 49, 28, 11, 30, 13, 16, 16, 50, 12, 23,
558
- 17, 13, 14, 31, 14, 81, 35, 44, 45, 37,
559
- 48, 51, 10, 30, 78, 19, 13, 82, 16, 83,
560
- 13, nil, 16, 13, nil, 16, nil, 80, 24, nil,
561
- 50, 30, 72, 16, nil, 13, 13, 13, 13, 15,
562
- nil, 13, 13, 13, 16, 81, 10, 81, 75, 10,
563
- nil, nil, nil, 75, 75, 81, 81, nil, 13, 30,
564
- nil, 13, nil, nil, nil, 30, nil, 50, nil, 13,
565
- nil, 13, nil, 50, 16, 50, nil, 50, 16, 10,
566
- 13, 30, 13, 16, 30, 16, 72, nil, 10, 16,
567
- nil, 72, nil, 13, 16, nil, nil, nil, nil, nil,
568
- 72, 72, nil, nil, nil, nil, nil, 50, nil, nil,
569
- 33, 33, nil, 50, nil, 33, 33, 33, nil, 19,
570
- nil, 16, nil, 16, nil, nil, nil, nil, nil, nil,
571
- 19, 10, 16, nil, nil, nil, nil, 16, nil, nil,
572
- nil, nil, nil, nil, nil, nil, 16, nil, nil, nil,
573
- nil, 10, nil, nil, nil, nil, nil, nil, nil, nil,
574
- nil, nil, nil, 16, 33, 33, 16, nil, nil, 10,
575
- nil, 33, 33, 33, 16, nil, nil, nil, nil, nil,
576
- nil, nil, nil, nil, nil, nil, 16, nil, nil, nil,
577
- nil, nil, nil, nil, nil, nil, nil, 10, nil, nil,
578
- nil, 13, nil, 10, nil, nil, nil, nil, nil, 16,
579
- nil, nil, nil, nil, nil, nil, 16, nil, nil, 10,
580
- nil, nil, 10, nil, nil, nil, nil, nil, nil, nil,
545
+ 10, 80, 15, 10, 33, 24, 37, 33, 16, 16,
546
+ 23, 28, 29, 30, 19, 81, 19, 13, 20, 56,
547
+ 50, 18, 46, 77, 79, 14, 36, 22, 32, 71,
548
+ 71, 79, 79, 22, 55, 32, 73, 73, 4, 34,
549
+ 1, 4, 73, 73, 34, 14, 28, 19, 22, 74,
550
+ 18, 75, 2, 50, 74, 36, 75, 75, 16, 37,
551
+ 3, 56, 46, 77, 29, 13, 30, 81, 28, 20,
552
+ 16, 55, 13, 16, 16, 16, 16, 16, 16, 16,
553
+ 16, 16, 16, 16, 16, 11, 30, 13, 23, 12,
554
+ 50, 13, 16, 16, 13, 17, 50, 37, 50, 14,
555
+ 50, 14, 10, 31, 30, 35, 13, 13, 13, 13,
556
+ 80, 44, 13, 13, 13, 16, 19, 45, 24, 16,
557
+ 48, 49, 16, 15, 51, 72, 78, 82, 30, 13,
558
+ 16, 50, 13, 83, 30, 84, 10, 50, nil, 10,
559
+ 13, 16, 13, nil, nil, nil, 30, nil, nil, 30,
560
+ nil, 13, 49, 13, nil, 49, 49, 49, nil, nil,
561
+ nil, nil, nil, nil, 13, nil, 72, nil, nil, 10,
562
+ nil, 16, 72, nil, nil, 16, 72, 72, 10, nil,
563
+ nil, 16, nil, 16, 33, nil, nil, 16, nil, 49,
564
+ nil, 49, 16, nil, 33, nil, nil, nil, nil, 33,
581
565
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
582
- nil, nil, nil, nil, nil, 13, 13 ]
566
+ nil, nil, nil, nil, 19, nil, nil, nil, nil, 16,
567
+ nil, 16, 10, 19, nil, nil, nil, nil, nil, 16,
568
+ nil, nil, nil, nil, nil, 16, 33, nil, nil, nil,
569
+ nil, nil, 10, nil, 16, nil, nil, nil, 33, nil,
570
+ nil, nil, nil, nil, nil, 33, nil, nil, nil, nil,
571
+ 10, 16, nil, nil, 16, nil, nil, nil, nil, nil,
572
+ 16, 13, nil, nil, nil, nil, nil, nil, nil, nil,
573
+ 16, nil, nil, nil, 10, nil, nil, nil, nil, nil,
574
+ 10, nil, nil, nil, nil, nil, nil, nil, nil, 16,
575
+ nil, nil, 10, nil, nil, 10, 16, nil, nil, 13,
576
+ 13 ]
583
577
 
584
578
  racc_goto_pointer = [
585
- nil, 53, 62, 64, 26, nil, nil, nil, nil, nil,
586
- 0, 72, 48, 17, -80, -3, -9, 0, -69, -93,
587
- -235, nil, -265, -110, -55, nil, nil, nil, -42, -2,
588
- -138, -148, -216, 11, -159, 1, -72, -160, nil, nil,
589
- nil, nil, nil, nil, -124, -124, -206, nil, -165, -64,
590
- 17, 86, nil, nil, nil, -85, -121, nil, nil, nil,
579
+ nil, 40, 52, 60, 38, nil, nil, nil, nil, nil,
580
+ 0, 75, 49, -2, -73, -9, -2, 5, -69, -83,
581
+ -238, nil, -257, -112, -55, nil, nil, nil, -55, -3,
582
+ -156, -139, -216, 4, -151, 10, -69, -163, nil, nil,
583
+ nil, nil, nil, nil, -111, -106, -201, nil, -146, 47,
584
+ -50, 109, nil, nil, nil, -68, -117, nil, nil, nil,
591
585
  nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
592
- nil, -67, -57, -64, -133, -52, nil, -124, -39, -219,
593
- -152, -135, -90, -176 ]
586
+ nil, -77, -16, -70, -140, -140, nil, -120, -17, -221,
587
+ -158, -165, -53, -65, -147 ]
594
588
 
595
589
  racc_goto_default = [
596
590
  nil, nil, nil, nil, nil, 5, 6, 7, 8, 9,
597
591
  58, nil, nil, nil, 164, nil, 129, nil, nil, nil,
598
- nil, 128, 216, nil, 62, 63, 64, 65, nil, 42,
599
- 59, 223, 242, 231, nil, nil, nil, 311, 212, 213,
600
- 214, 215, 217, 218, nil, nil, nil, 265, 266, 70,
592
+ nil, 128, 217, nil, 62, 63, 64, 65, nil, 42,
593
+ 59, 224, 243, 246, nil, nil, nil, 304, 213, 214,
594
+ 215, 216, 218, 219, nil, nil, nil, 266, 267, 70,
601
595
  71, nil, 16, 17, 18, nil, 137, 20, 21, 22,
602
596
  23, 24, 25, 26, 27, 29, 30, 31, 32, 33,
603
- 34, 154, nil, nil, nil, nil, 36, nil, nil, 246,
604
- nil, 232, nil, nil ]
597
+ 34, 154, nil, nil, nil, nil, 36, nil, nil, 247,
598
+ nil, nil, nil, nil, nil ]
605
599
 
606
600
  racc_reduce_table = [
607
601
  0, 0, :racc_error,
@@ -739,11 +733,11 @@ racc_reduce_table = [
739
733
  1, 103, :_reduce_none,
740
734
  1, 103, :_reduce_none,
741
735
  4, 104, :_reduce_134,
742
- 7, 105, :_reduce_135,
743
- 8, 105, :_reduce_136,
736
+ 5, 105, :_reduce_135,
737
+ 6, 105, :_reduce_136,
744
738
  5, 105, :_reduce_137,
745
739
  4, 105, :_reduce_138,
746
- 8, 106, :_reduce_139,
740
+ 6, 106, :_reduce_139,
747
741
  5, 106, :_reduce_140,
748
742
  4, 106, :_reduce_141,
749
743
  6, 107, :_reduce_142,
@@ -756,7 +750,7 @@ racc_reduce_table = [
756
750
  0, 72, :_reduce_none,
757
751
  1, 72, :_reduce_none,
758
752
  4, 96, :_reduce_151,
759
- 8, 97, :_reduce_152,
753
+ 6, 97, :_reduce_152,
760
754
  0, 112, :_reduce_153,
761
755
  1, 112, :_reduce_none,
762
756
  3, 110, :_reduce_155,
@@ -773,23 +767,25 @@ racc_reduce_table = [
773
767
  3, 119, :_reduce_166,
774
768
  6, 120, :_reduce_167,
775
769
  0, 111, :_reduce_168,
776
- 1, 111, :_reduce_169,
777
- 2, 111, :_reduce_170,
778
- 8, 98, :_reduce_171,
779
- 1, 113, :_reduce_172,
780
- 3, 113, :_reduce_173,
781
- 6, 99, :_reduce_174,
782
- 7, 100, :_reduce_175,
783
- 7, 101, :_reduce_176,
784
- 8, 93, :_reduce_177,
785
- 0, 121, :_reduce_none,
786
- 1, 121, :_reduce_none,
787
- 1, 122, :_reduce_180,
788
- 3, 122, :_reduce_181 ]
789
-
790
- racc_reduce_n = 182
791
-
792
- racc_shift_n = 323
770
+ 3, 111, :_reduce_169,
771
+ 0, 121, :_reduce_170,
772
+ 1, 121, :_reduce_171,
773
+ 2, 121, :_reduce_172,
774
+ 6, 98, :_reduce_173,
775
+ 1, 113, :_reduce_174,
776
+ 3, 113, :_reduce_175,
777
+ 6, 99, :_reduce_176,
778
+ 7, 100, :_reduce_177,
779
+ 7, 101, :_reduce_178,
780
+ 8, 93, :_reduce_179,
781
+ 0, 122, :_reduce_none,
782
+ 1, 122, :_reduce_none,
783
+ 1, 123, :_reduce_182,
784
+ 3, 123, :_reduce_183 ]
785
+
786
+ racc_reduce_n = 184
787
+
788
+ racc_shift_n = 316
793
789
 
794
790
  racc_token_table = {
795
791
  false => 0,
@@ -964,7 +960,7 @@ Racc_token_to_s_table = [
964
960
  "enum_type_extension",
965
961
  "input_object_type_extension",
966
962
  "implements",
967
- "field_definition_list",
963
+ "field_definition_list_opt",
968
964
  "implements_opt",
969
965
  "union_members",
970
966
  "input_value_definition_list",
@@ -974,6 +970,7 @@ Racc_token_to_s_table = [
974
970
  "input_value_definition",
975
971
  "arguments_definitions_opt",
976
972
  "field_definition",
973
+ "field_definition_list",
977
974
  "directive_repeatable_opt",
978
975
  "directive_locations" ]
979
976
 
@@ -1672,14 +1669,14 @@ module_eval(<<'.,.,', 'parser.y', 319)
1672
1669
 
1673
1670
  module_eval(<<'.,.,', 'parser.y', 323)
1674
1671
  def _reduce_135(val, _values, result)
1675
- result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: val[5], position_source: val[0])
1672
+ result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: val[4], position_source: val[0])
1676
1673
  result
1677
1674
  end
1678
1675
  .,.,
1679
1676
 
1680
1677
  module_eval(<<'.,.,', 'parser.y', 324)
1681
1678
  def _reduce_136(val, _values, result)
1682
- result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], position_source: val[0])
1679
+ result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], position_source: val[0])
1683
1680
  result
1684
1681
  end
1685
1682
  .,.,
@@ -1700,7 +1697,7 @@ module_eval(<<'.,.,', 'parser.y', 326)
1700
1697
 
1701
1698
  module_eval(<<'.,.,', 'parser.y', 329)
1702
1699
  def _reduce_139(val, _values, result)
1703
- result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], position_source: val[0])
1700
+ result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], position_source: val[0])
1704
1701
  result
1705
1702
  end
1706
1703
  .,.,
@@ -1777,7 +1774,7 @@ module_eval(<<'.,.,', 'parser.y', 353)
1777
1774
 
1778
1775
  module_eval(<<'.,.,', 'parser.y', 358)
1779
1776
  def _reduce_152(val, _values, result)
1780
- result = make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1777
+ result = make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1781
1778
 
1782
1779
  result
1783
1780
  end
@@ -1894,85 +1891,99 @@ module_eval(<<'.,.,', 'parser.y', 397)
1894
1891
 
1895
1892
  module_eval(<<'.,.,', 'parser.y', 398)
1896
1893
  def _reduce_169(val, _values, result)
1897
- result = [val[0]]
1894
+ result = val[1]
1898
1895
  result
1899
1896
  end
1900
1897
  .,.,
1901
1898
 
1902
- module_eval(<<'.,.,', 'parser.y', 399)
1899
+ module_eval(<<'.,.,', 'parser.y', 401)
1903
1900
  def _reduce_170(val, _values, result)
1904
- val[0] << val[1]
1901
+ result = EMPTY_ARRAY
1905
1902
  result
1906
1903
  end
1907
1904
  .,.,
1908
1905
 
1909
- module_eval(<<'.,.,', 'parser.y', 403)
1906
+ module_eval(<<'.,.,', 'parser.y', 402)
1910
1907
  def _reduce_171(val, _values, result)
1911
- result = make_node(:InterfaceTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1908
+ result = [val[0]]
1909
+ result
1910
+ end
1911
+ .,.,
1912
1912
 
1913
+ module_eval(<<'.,.,', 'parser.y', 403)
1914
+ def _reduce_172(val, _values, result)
1915
+ val[0] << val[1]
1913
1916
  result
1914
1917
  end
1915
1918
  .,.,
1916
1919
 
1917
1920
  module_eval(<<'.,.,', 'parser.y', 407)
1918
- def _reduce_172(val, _values, result)
1921
+ def _reduce_173(val, _values, result)
1922
+ result = make_node(:InterfaceTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1923
+
1924
+ result
1925
+ end
1926
+ .,.,
1927
+
1928
+ module_eval(<<'.,.,', 'parser.y', 411)
1929
+ def _reduce_174(val, _values, result)
1919
1930
  result = [make_node(:TypeName, name: val[0], position_source: val[0])]
1920
1931
  result
1921
1932
  end
1922
1933
  .,.,
1923
1934
 
1924
- module_eval(<<'.,.,', 'parser.y', 408)
1925
- def _reduce_173(val, _values, result)
1935
+ module_eval(<<'.,.,', 'parser.y', 412)
1936
+ def _reduce_175(val, _values, result)
1926
1937
  val[0] << make_node(:TypeName, name: val[2], position_source: val[2])
1927
1938
  result
1928
1939
  end
1929
1940
  .,.,
1930
1941
 
1931
- module_eval(<<'.,.,', 'parser.y', 412)
1932
- def _reduce_174(val, _values, result)
1942
+ module_eval(<<'.,.,', 'parser.y', 416)
1943
+ def _reduce_176(val, _values, result)
1933
1944
  result = make_node(:UnionTypeDefinition, name: val[2], directives: val[3], types: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1934
1945
 
1935
1946
  result
1936
1947
  end
1937
1948
  .,.,
1938
1949
 
1939
- module_eval(<<'.,.,', 'parser.y', 417)
1940
- def _reduce_175(val, _values, result)
1950
+ module_eval(<<'.,.,', 'parser.y', 421)
1951
+ def _reduce_177(val, _values, result)
1941
1952
  result = make_node(:EnumTypeDefinition, name: val[2], directives: val[3], values: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1942
1953
 
1943
1954
  result
1944
1955
  end
1945
1956
  .,.,
1946
1957
 
1947
- module_eval(<<'.,.,', 'parser.y', 422)
1948
- def _reduce_176(val, _values, result)
1958
+ module_eval(<<'.,.,', 'parser.y', 426)
1959
+ def _reduce_178(val, _values, result)
1949
1960
  result = make_node(:InputObjectTypeDefinition, name: val[2], directives: val[3], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1950
1961
 
1951
1962
  result
1952
1963
  end
1953
1964
  .,.,
1954
1965
 
1955
- module_eval(<<'.,.,', 'parser.y', 427)
1956
- def _reduce_177(val, _values, result)
1966
+ module_eval(<<'.,.,', 'parser.y', 431)
1967
+ def _reduce_179(val, _values, result)
1957
1968
  result = make_node(:DirectiveDefinition, name: val[3], arguments: val[4], locations: val[7], repeatable: !!val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
1958
1969
 
1959
1970
  result
1960
1971
  end
1961
1972
  .,.,
1962
1973
 
1963
- # reduce 178 omitted
1974
+ # reduce 180 omitted
1964
1975
 
1965
- # reduce 179 omitted
1976
+ # reduce 181 omitted
1966
1977
 
1967
- module_eval(<<'.,.,', 'parser.y', 435)
1968
- def _reduce_180(val, _values, result)
1978
+ module_eval(<<'.,.,', 'parser.y', 439)
1979
+ def _reduce_182(val, _values, result)
1969
1980
  result = [make_node(:DirectiveLocation, name: val[0].to_s, position_source: val[0])]
1970
1981
  result
1971
1982
  end
1972
1983
  .,.,
1973
1984
 
1974
- module_eval(<<'.,.,', 'parser.y', 436)
1975
- def _reduce_181(val, _values, result)
1985
+ module_eval(<<'.,.,', 'parser.y', 440)
1986
+ def _reduce_183(val, _values, result)
1976
1987
  val[0] << make_node(:DirectiveLocation, name: val[2].to_s, position_source: val[2])
1977
1988
  result
1978
1989
  end
@@ -321,13 +321,13 @@ rule
321
321
 
322
322
  object_type_extension:
323
323
  /* TODO - This first one shouldn't be necessary but parser is getting confused */
324
- EXTEND TYPE name implements LCURLY field_definition_list RCURLY { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: val[5], position_source: val[0]) }
325
- | EXTEND TYPE name implements_opt directives_list_opt LCURLY field_definition_list RCURLY { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], position_source: val[0]) }
324
+ EXTEND TYPE name implements field_definition_list_opt { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: val[4], position_source: val[0]) }
325
+ | EXTEND TYPE name implements_opt directives_list_opt field_definition_list_opt { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], position_source: val[0]) }
326
326
  | EXTEND TYPE name implements_opt directives_list { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: [], position_source: val[0]) }
327
327
  | EXTEND TYPE name implements { result = make_node(:ObjectTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: [], position_source: val[0]) }
328
328
 
329
329
  interface_type_extension:
330
- EXTEND INTERFACE name implements_opt directives_list_opt LCURLY field_definition_list RCURLY { result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], position_source: val[0]) }
330
+ EXTEND INTERFACE name implements_opt directives_list_opt field_definition_list_opt { result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], position_source: val[0]) }
331
331
  | EXTEND INTERFACE name implements_opt directives_list { result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: val[4], fields: [], position_source: val[0]) }
332
332
  | EXTEND INTERFACE name implements { result = make_node(:InterfaceTypeExtension, name: val[2], interfaces: val[3], directives: [], fields: [], position_source: val[0]) }
333
333
 
@@ -355,8 +355,8 @@ rule
355
355
  }
356
356
 
357
357
  object_type_definition:
358
- description_opt TYPE name implements_opt directives_list_opt LCURLY field_definition_list RCURLY {
359
- result = make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
358
+ description_opt TYPE name implements_opt directives_list_opt field_definition_list_opt {
359
+ result = make_node(:ObjectTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
360
360
  }
361
361
 
362
362
  implements_opt:
@@ -394,14 +394,18 @@ rule
394
394
  result = make_node(:FieldDefinition, name: val[1], arguments: val[2], type: val[4], directives: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
395
395
  }
396
396
 
397
- field_definition_list:
397
+ field_definition_list_opt:
398
398
  /* none */ { result = EMPTY_ARRAY }
399
+ | LCURLY field_definition_list RCURLY { result = val[1] }
400
+
401
+ field_definition_list:
402
+ /* none - this is not actually valid but graphql-ruby used to print this */ { result = EMPTY_ARRAY }
399
403
  | field_definition { result = [val[0]] }
400
404
  | field_definition_list field_definition { val[0] << val[1] }
401
405
 
402
406
  interface_type_definition:
403
- description_opt INTERFACE name implements_opt directives_list_opt LCURLY field_definition_list RCURLY {
404
- result = make_node(:InterfaceTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[6], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
407
+ description_opt INTERFACE name implements_opt directives_list_opt field_definition_list_opt {
408
+ result = make_node(:InterfaceTypeDefinition, name: val[2], interfaces: val[3], directives: val[4], fields: val[5], description: val[0] || get_description(val[1]), definition_line: val[1].line, position_source: val[0] || val[1])
405
409
  }
406
410
 
407
411
  union_members:
@@ -214,7 +214,8 @@ module GraphQL
214
214
  # @param ast_node [Language::Nodes::FieldDefinition, nil] If this schema was parsed from definition, this AST node defined the field
215
215
  # @param method_conflict_warning [Boolean] If false, skip the warning if this field's method conflicts with a built-in method
216
216
  # @param validates [Array<Hash>] Configurations for validating this field
217
- def initialize(type: nil, name: nil, owner: nil, null: nil, description: :not_given, deprecation_reason: nil, method: nil, hash_key: nil, dig: nil, resolver_method: nil, connection: nil, max_page_size: :not_given, scope: nil, introspection: false, camelize: true, trace: nil, complexity: nil, ast_node: nil, extras: EMPTY_ARRAY, extensions: EMPTY_ARRAY, connection_extension: self.class.connection_extension, resolver_class: nil, subscription_scope: nil, relay_node_field: false, relay_nodes_field: false, method_conflict_warning: true, broadcastable: nil, arguments: EMPTY_HASH, directives: EMPTY_HASH, validates: EMPTY_ARRAY, &definition_block)
217
+ # @fallback_value [Object] A fallback value if the method is not defined
218
+ def initialize(type: nil, name: nil, owner: nil, null: nil, description: :not_given, deprecation_reason: nil, method: nil, hash_key: nil, dig: nil, resolver_method: nil, connection: nil, max_page_size: :not_given, scope: nil, introspection: false, camelize: true, trace: nil, complexity: nil, ast_node: nil, extras: EMPTY_ARRAY, extensions: EMPTY_ARRAY, connection_extension: self.class.connection_extension, resolver_class: nil, subscription_scope: nil, relay_node_field: false, relay_nodes_field: false, method_conflict_warning: true, broadcastable: nil, arguments: EMPTY_HASH, directives: EMPTY_HASH, validates: EMPTY_ARRAY, fallback_value: :not_given, &definition_block)
218
219
  if name.nil?
219
220
  raise ArgumentError, "missing first `name` argument or keyword `name:`"
220
221
  end
@@ -246,7 +247,7 @@ module GraphQL
246
247
  end
247
248
  end
248
249
 
249
- method_name = method || name_s
250
+ method_name = method || hash_key || name_s
250
251
  @dig_keys = dig
251
252
  if hash_key
252
253
  @hash_key = hash_key
@@ -280,6 +281,7 @@ module GraphQL
280
281
  @relay_nodes_field = relay_nodes_field
281
282
  @ast_node = ast_node
282
283
  @method_conflict_warning = method_conflict_warning
284
+ @fallback_value = fallback_value
283
285
 
284
286
  arguments.each do |name, arg|
285
287
  case arg
@@ -643,11 +645,7 @@ module GraphQL
643
645
  inner_object = obj.object
644
646
 
645
647
  if defined?(@hash_key)
646
- inner_object.fetch(@hash_key) {
647
- inner_object[@hash_key_str]
648
- }
649
- elsif @dig_keys
650
- inner_object.dig(*@dig_keys)
648
+ inner_object[@hash_key] || inner_object[@hash_key_str] || (@fallback_value != :not_given ? @fallback_value : nil)
651
649
  elsif obj.respond_to?(resolver_method)
652
650
  method_to_call = resolver_method
653
651
  method_receiver = obj
@@ -658,10 +656,26 @@ module GraphQL
658
656
  obj.public_send(resolver_method)
659
657
  end
660
658
  elsif inner_object.is_a?(Hash)
661
- if inner_object.key?(@method_sym)
659
+ if @dig_keys
660
+ inner_object.dig(*@dig_keys)
661
+ elsif defined?(@hash_key)
662
+ if inner_object.key?(@hash_key)
663
+ inner_object[@hash_key]
664
+ elsif inner_object.key?(@hash_key_str)
665
+ inner_object[@hash_key_str]
666
+ elsif @fallback_value != :not_given
667
+ @fallback_value
668
+ else
669
+ nil
670
+ end
671
+ elsif inner_object.key?(@method_sym)
662
672
  inner_object[@method_sym]
663
- else
673
+ elsif inner_object.key?(@method_str)
664
674
  inner_object[@method_str]
675
+ elsif @fallback_value != :not_given
676
+ @fallback_value
677
+ else
678
+ nil
665
679
  end
666
680
  elsif inner_object.respond_to?(@method_sym)
667
681
  method_to_call = @method_sym
@@ -671,6 +685,8 @@ module GraphQL
671
685
  else
672
686
  inner_object.public_send(@method_sym)
673
687
  end
688
+ elsif @fallback_value != :not_given
689
+ @fallback_value
674
690
  else
675
691
  raise <<-ERR
676
692
  Failed to implement #{@owner.graphql_name}.#{@name}, tried:
@@ -679,7 +695,7 @@ module GraphQL
679
695
  - `#{inner_object.class}##{@method_sym}`, which did not exist
680
696
  - Looking up hash key `#{@method_sym.inspect}` or `#{@method_str.inspect}` on `#{inner_object}`, but it wasn't a Hash
681
697
 
682
- To implement this field, define one of the methods above (and check for typos)
698
+ To implement this field, define one of the methods above (and check for typos), or supply a `fallback_value`.
683
699
  ERR
684
700
  end
685
701
  end
@@ -751,7 +767,7 @@ module GraphQL
751
767
 
752
768
  if unsatisfied_ruby_kwargs.any? || unsatisfied_method_params.any?
753
769
  raise FieldImplementationFailed.new, <<-ERR
754
- Failed to call #{method_name} on #{receiver.inspect} because the Ruby method params were incompatible with the GraphQL arguments:
770
+ Failed to call `#{method_name.inspect}` on #{receiver.inspect} because the Ruby method params were incompatible with the GraphQL arguments:
755
771
 
756
772
  #{ unsatisfied_ruby_kwargs
757
773
  .map { |key, value| "- `#{key}: #{value}` was given by GraphQL but not defined in the Ruby method. Add `#{key}:` to the method parameters." }
@@ -45,6 +45,8 @@ module GraphQL
45
45
  span.set_tag(:query_string, data[:query].query_string)
46
46
  end
47
47
 
48
+ prepare_span(key, data, span)
49
+
48
50
  yield
49
51
  end
50
52
  end
@@ -53,6 +55,13 @@ module GraphQL
53
55
  options.fetch(:service, 'ruby-graphql')
54
56
  end
55
57
 
58
+ # Implement this method in a subclass to apply custom tags to datadog spans
59
+ # @param key [String] The event being traced
60
+ # @param data [Hash] The runtime data for this event (@see GraphQL::Tracing for keys for each event)
61
+ # @param span [Datadog::Tracing::SpanOperation] The datadog span for this event
62
+ def prepare_span(key, data, span)
63
+ end
64
+
56
65
  def tracer
57
66
  default_tracer = defined?(Datadog::Tracing) ? Datadog::Tracing : Datadog.tracer
58
67
 
@@ -10,6 +10,10 @@ module GraphQL
10
10
  class PlatformTracing
11
11
  class << self
12
12
  attr_accessor :platform_keys
13
+
14
+ def inherited(child_class)
15
+ child_class.platform_keys = self.platform_keys
16
+ end
13
17
  end
14
18
 
15
19
  def initialize(options = {})
@@ -60,6 +60,9 @@ module GraphQL
60
60
  # But without this, it would zero out given any time part of `str_value` (hours and/or minutes)
61
61
  if dt.iso8601.start_with?(str_value)
62
62
  dt
63
+ elsif str_value.length == 8 && str_value.match?(/\A\d{8}\Z/)
64
+ # Allow dates that are missing the "-". eg. "20220404"
65
+ dt
63
66
  else
64
67
  nil
65
68
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "2.0.7"
3
+ VERSION = "2.0.8"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7
4
+ version: 2.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-25 00:00:00.000000000 Z
11
+ date: 2022-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips