graphql 1.9.17 → 1.9.18

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0486697e594e11affbd5f7d0a661023e2a649abfa654e8faa26b5849fce0b473'
4
- data.tar.gz: 3943f0dcdeb83dc593ddf675cee9143180d61ea25f454ac1ba6e8f098f4bfaf3
3
+ metadata.gz: dac791a669cb749de7dbbadbff748e28661e952b13a39ca288d94dd062a6f091
4
+ data.tar.gz: 4b95ab1279ba396004a3e0c1e3093ebbd45cdb07f3080e3445eb5c1d9a055741
5
5
  SHA512:
6
- metadata.gz: 5075b2a02ca5dc3d219736b64b768ef6bbb46f09cebb92aac5ab5d3249b4675b229cb058fe44a328543328497f91658078919e04019857802f42e219585d11fa
7
- data.tar.gz: 8236278511482220a05461616be330b7c629241f2cb092b67392412d4710c6f5ab2c8e75d342c598bb64bec0fa02b003972d9b1af971562ccaf765daac444492
6
+ metadata.gz: ee1e35c609f8cb231bbcddf1349f74911f0979a5811046de0172912ea984bd20b2034173be2e3722bcf323b582b0bf072fb1849e5c4bfa0d141a24006b412a5f
7
+ data.tar.gz: 91b97da692780076730ff580cfb5281f6116ee85ea097b1d7eaeed16c9f57f4ea936b6da9bc20c1015d8a63638eb054c096e47c2e802afea06ce76956e5753eb
@@ -134,9 +134,9 @@ module GraphQL
134
134
  end
135
135
 
136
136
  if type_or_argument.is_a?(GraphQL::Argument)
137
- type_or_argument.redefine(kwargs, &block)
137
+ type_or_argument.redefine(**kwargs, &block)
138
138
  else
139
- GraphQL::Argument.define(kwargs, &block)
139
+ GraphQL::Argument.define(**kwargs, &block)
140
140
  end
141
141
  end
142
142
 
@@ -28,9 +28,9 @@ module GraphQL
28
28
  end
29
29
 
30
30
  obj_field = if base_field
31
- base_field.redefine(kwargs, &block)
31
+ base_field.redefine(**kwargs, &block)
32
32
  else
33
- GraphQL::Field.define(kwargs, &block)
33
+ GraphQL::Field.define(**kwargs, &block)
34
34
  end
35
35
 
36
36
 
@@ -32,10 +32,16 @@ module GraphQL
32
32
  end
33
33
 
34
34
  # Lookup a function from the dictionary and call it if it's found.
35
- def method_missing(name, *args, &block)
35
+ def method_missing(name, *args, **kwargs, &block)
36
36
  definition = @dictionary[name]
37
37
  if definition
38
- definition.call(@target, *args, &block)
38
+ # Avoid passing `kwargs` when it's not used.
39
+ # Ruby 2.7 does fine here, but older Rubies receive too many arguments.
40
+ if kwargs.any?
41
+ definition.call(@target, *args, **kwargs, &block)
42
+ else
43
+ definition.call(@target, *args, &block)
44
+ end
39
45
  else
40
46
  msg = "#{@target.class.name} can't define '#{name}'"
41
47
  raise NoDefinitionError, msg, caller
@@ -154,7 +154,12 @@ module GraphQL
154
154
  defn_proxy = DefinedObjectProxy.new(self)
155
155
  # Apply definition from `define(...)` kwargs
156
156
  defn.define_keywords.each do |keyword, value|
157
- defn_proxy.public_send(keyword, value)
157
+ # Don't splat string hashes, which blows up on Rubies before 2.7
158
+ if value.is_a?(Hash) && value.each_key.all? { |k| k.is_a?(Symbol) }
159
+ defn_proxy.public_send(keyword, **value)
160
+ else
161
+ defn_proxy.public_send(keyword, value)
162
+ end
158
163
  end
159
164
  # and/or apply definition from `define { ... }` block
160
165
  if defn.define_proc
@@ -20,7 +20,7 @@ module GraphQL
20
20
 
21
21
  def execute(ast_operation, root_type, query)
22
22
  result = resolve_root_selection(query)
23
- lazy_resolve_root_selection(result, {query: query})
23
+ lazy_resolve_root_selection(result, **{query: query})
24
24
  GraphQL::Execution::Flatten.call(query.context)
25
25
  end
26
26
 
@@ -44,9 +44,9 @@ module GraphQL
44
44
  end
45
45
 
46
46
  class << self
47
- def run_all(schema, query_options, *args)
48
- queries = query_options.map { |opts| GraphQL::Query.new(schema, nil, opts) }
49
- run_queries(schema, queries, *args)
47
+ def run_all(schema, query_options, **kwargs)
48
+ queries = query_options.map { |opts| GraphQL::Query.new(schema, nil, **opts) }
49
+ run_queries(schema, queries, **kwargs)
50
50
  end
51
51
 
52
52
  # @param schema [GraphQL::Schema]
@@ -23,10 +23,16 @@ module GraphQL
23
23
  @include_built_in_scalars = include_built_in_scalars
24
24
  @include_built_in_directives = include_built_in_directives
25
25
 
26
+ filter = GraphQL::Filter.new(only: only, except: except)
27
+ if @schema.respond_to?(:visible?)
28
+ filter = filter.merge(only: @schema.method(:visible?))
29
+ end
30
+
31
+ schema_context = schema.context_class.new(query: nil, object: nil, schema: schema, values: context)
26
32
  @warden = GraphQL::Schema::Warden.new(
27
- GraphQL::Filter.new(only: only, except: except),
33
+ filter,
28
34
  schema: @schema,
29
- context: context,
35
+ context: schema_context,
30
36
  )
31
37
  end
32
38
 
@@ -250,7 +256,7 @@ module GraphQL
250
256
  definitions = []
251
257
  definitions << build_schema_node if include_schema_node?
252
258
  definitions += build_directive_nodes(warden.directives)
253
- definitions += build_type_definition_nodes(warden.types)
259
+ definitions += build_type_definition_nodes(warden.reachable_types)
254
260
  definitions
255
261
  end
256
262
 
@@ -25,7 +25,7 @@ module GraphQL
25
25
  # Initialize a node by extracting its position,
26
26
  # then calling the class's `initialize_node` method.
27
27
  # @param options [Hash] Initial attributes for this node
28
- def initialize(options={})
28
+ def initialize(options = {})
29
29
  if options.key?(:position_source)
30
30
  position_source = options.delete(:position_source)
31
31
  @line = position_source.line
@@ -34,7 +34,7 @@ module GraphQL
34
34
 
35
35
  @filename = options.delete(:filename)
36
36
 
37
- initialize_node(options)
37
+ initialize_node(**options)
38
38
  end
39
39
 
40
40
  # Value equality
@@ -134,7 +134,6 @@ module GraphQL
134
134
  @executed = false
135
135
 
136
136
  # TODO add a general way to define schema-level filters
137
- # TODO also add this to schema dumps
138
137
  if @schema.respond_to?(:visible?)
139
138
  merge_filters(only: @schema.method(:visible?))
140
139
  end
@@ -143,9 +143,9 @@ module GraphQL
143
143
  # Make a new context which delegates key lookup to `values`
144
144
  # @param query [GraphQL::Query] the query who owns this context
145
145
  # @param values [Hash] A hash of arbitrary values which will be accessible at query-time
146
- def initialize(query:, values: , object:)
146
+ def initialize(query:, schema: query.schema, values:, object:)
147
147
  @query = query
148
- @schema = query.schema
148
+ @schema = schema
149
149
  @provided_values = values || {}
150
150
  @object = object
151
151
  # Namespaced storage, where user-provided values are in `nil` namespace:
@@ -334,6 +334,3 @@ module GraphQL
334
334
  end
335
335
  end
336
336
  end
337
-
338
-
339
- GraphQL::Schema::Context = GraphQL::Query::Context
@@ -11,7 +11,7 @@ module GraphQL
11
11
  field = GraphQL::Types::Relay::NodeField.graphql_definition
12
12
 
13
13
  if kwargs.any? || block
14
- field = field.redefine(kwargs, &block)
14
+ field = field.redefine(**kwargs, &block)
15
15
  end
16
16
 
17
17
  field
@@ -21,7 +21,7 @@ module GraphQL
21
21
  field = GraphQL::Types::Relay::NodesField.graphql_definition
22
22
 
23
23
  if kwargs.any? || block
24
- field = field.redefine(kwargs, &block)
24
+ field = field.redefine(**kwargs, &block)
25
25
  end
26
26
 
27
27
  field
@@ -99,6 +99,8 @@ module GraphQL
99
99
  mutation: ->(schema, t) { schema.mutation = t.respond_to?(:graphql_definition) ? t.graphql_definition : t },
100
100
  subscription: ->(schema, t) { schema.subscription = t.respond_to?(:graphql_definition) ? t.graphql_definition : t },
101
101
  disable_introspection_entry_points: ->(schema) { schema.disable_introspection_entry_points = true },
102
+ disable_schema_introspection_entry_point: ->(schema) { schema.disable_schema_introspection_entry_point = true },
103
+ disable_type_introspection_entry_point: ->(schema) { schema.disable_type_introspection_entry_point = true },
102
104
  directives: ->(schema, directives) { schema.directives = directives.reduce({}) { |m, d| m[d.name] = d; m } },
103
105
  directive: ->(schema, directive) { schema.directives[directive.graphql_name] = directive },
104
106
  instrument: ->(schema, type, instrumenter, after_built_ins: false) {
@@ -154,6 +156,12 @@ module GraphQL
154
156
  # [Boolean] True if this object disables the introspection entry point fields
155
157
  attr_accessor :disable_introspection_entry_points
156
158
 
159
+ # [Boolean] True if this object disables the __schema introspection entry point field
160
+ attr_accessor :disable_schema_introspection_entry_point
161
+
162
+ # [Boolean] True if this object disables the __type introspection entry point field
163
+ attr_accessor :disable_type_introspection_entry_point
164
+
157
165
  class << self
158
166
  attr_writer :default_execution_strategy
159
167
  end
@@ -203,6 +211,8 @@ module GraphQL
203
211
  @interpreter = false
204
212
  @error_bubbling = false
205
213
  @disable_introspection_entry_points = false
214
+ @disable_schema_introspection_entry_point = false
215
+ @disable_type_introspection_entry_point = false
206
216
  end
207
217
 
208
218
  # @return [Boolean] True if using the new {GraphQL::Execution::Interpreter}
@@ -272,7 +282,7 @@ module GraphQL
272
282
  query = GraphQL::Query.new(self, document: doc, context: context)
273
283
  validator_opts = { schema: self }
274
284
  rules && (validator_opts[:rules] = rules)
275
- validator = GraphQL::StaticValidation::Validator.new(validator_opts)
285
+ validator = GraphQL::StaticValidation::Validator.new(**validator_opts)
276
286
  res = validator.validate(query)
277
287
  res[:errors]
278
288
  end
@@ -679,9 +689,12 @@ module GraphQL
679
689
  end
680
690
 
681
691
  # Return the GraphQL::Language::Document IDL AST for the schema
692
+ # @param context [Hash]
693
+ # @param only [<#call(member, ctx)>]
694
+ # @param except [<#call(member, ctx)>]
682
695
  # @return [GraphQL::Language::Document]
683
- def to_document
684
- GraphQL::Language::DocumentFromSchemaDefinition.new(self).document
696
+ def to_document(only: nil, except: nil, context: {})
697
+ GraphQL::Language::DocumentFromSchemaDefinition.new(self, only: only, except: except, context: context).document
685
698
  end
686
699
 
687
700
  # Return the Hash response of {Introspection::INTROSPECTION_QUERY}.
@@ -732,13 +745,15 @@ module GraphQL
732
745
  :union_memberships,
733
746
  :get_field, :root_types, :references_to, :type_from_ast,
734
747
  :possible_types,
735
- :disable_introspection_entry_points=
748
+ :disable_introspection_entry_points=,
749
+ :disable_schema_introspection_entry_point=,
750
+ :disable_type_introspection_entry_point=
736
751
 
737
752
  def graphql_definition
738
753
  @graphql_definition ||= to_graphql
739
754
  end
740
755
 
741
- def use(plugin, options = {})
756
+ def use(plugin, **options)
742
757
  own_plugins << [plugin, options]
743
758
  end
744
759
 
@@ -758,6 +773,8 @@ module GraphQL
758
773
  schema_defn.default_max_page_size = default_max_page_size
759
774
  schema_defn.orphan_types = orphan_types
760
775
  schema_defn.disable_introspection_entry_points = disable_introspection_entry_points?
776
+ schema_defn.disable_schema_introspection_entry_point = disable_schema_introspection_entry_point?
777
+ schema_defn.disable_type_introspection_entry_point = disable_type_introspection_entry_point?
761
778
 
762
779
  prepped_dirs = {}
763
780
  directives.each { |k, v| prepped_dirs[k] = v.graphql_definition}
@@ -913,6 +930,14 @@ module GraphQL
913
930
  @disable_introspection_entry_points = true
914
931
  end
915
932
 
933
+ def disable_schema_introspection_entry_point
934
+ @disable_schema_introspection_entry_point = true
935
+ end
936
+
937
+ def disable_type_introspection_entry_point
938
+ @disable_type_introspection_entry_point = true
939
+ end
940
+
916
941
  def disable_introspection_entry_points?
917
942
  if instance_variable_defined?(:@disable_introspection_entry_points)
918
943
  @disable_introspection_entry_points
@@ -921,6 +946,22 @@ module GraphQL
921
946
  end
922
947
  end
923
948
 
949
+ def disable_schema_introspection_entry_point?
950
+ if instance_variable_defined?(:@disable_schema_introspection_entry_point)
951
+ @disable_schema_introspection_entry_point
952
+ else
953
+ find_inherited_value(:disable_schema_introspection_entry_point?, false)
954
+ end
955
+ end
956
+
957
+ def disable_type_introspection_entry_point?
958
+ if instance_variable_defined?(:@disable_type_introspection_entry_point)
959
+ @disable_type_introspection_entry_point
960
+ else
961
+ find_inherited_value(:disable_type_introspection_entry_point?, false)
962
+ end
963
+ end
964
+
924
965
  def orphan_types(*new_orphan_types)
925
966
  if new_orphan_types.any?
926
967
  own_orphan_types.concat(new_orphan_types.flatten)
@@ -183,12 +183,16 @@ module GraphQL
183
183
  def build_object_type(object_type_definition, type_resolver, default_resolve:)
184
184
  type_def = nil
185
185
  typed_resolve_fn = ->(field, obj, args, ctx) { default_resolve.call(type_def, field, obj, args, ctx) }
186
- type_def = GraphQL::ObjectType.define(
186
+ defns = {
187
187
  name: object_type_definition.name,
188
188
  description: object_type_definition.description,
189
- fields: Hash[build_fields(object_type_definition.fields, type_resolver, default_resolve: typed_resolve_fn)],
190
189
  interfaces: object_type_definition.interfaces.map{ |interface_name| type_resolver.call(interface_name) },
191
- )
190
+ }
191
+ obj_fields = Hash[build_fields(object_type_definition.fields, type_resolver, default_resolve: typed_resolve_fn)]
192
+ if obj_fields.any?
193
+ defns[:fields] = obj_fields
194
+ end
195
+ type_def = GraphQL::ObjectType.define(**defns)
192
196
  type_def.ast_node = object_type_definition
193
197
  type_def
194
198
  end
@@ -246,13 +250,19 @@ module GraphQL
246
250
  end
247
251
 
248
252
  def build_directive(directive_definition, type_resolver)
249
- directive = GraphQL::Directive.define(
253
+ directive_args = Hash[build_directive_arguments(directive_definition, type_resolver)]
254
+
255
+ defn = {
250
256
  name: directive_definition.name,
251
257
  description: directive_definition.description,
252
- arguments: Hash[build_directive_arguments(directive_definition, type_resolver)],
253
258
  locations: directive_definition.locations.map { |location| location.name.to_sym },
254
- )
259
+ }
260
+
261
+ if directive_args.any?
262
+ defn[:arguments] = directive_args
263
+ end
255
264
 
265
+ directive = GraphQL::Directive.define(**defn)
256
266
  directive.ast_node = directive_definition
257
267
 
258
268
  directive
@@ -317,14 +327,21 @@ module GraphQL
317
327
  [argument.name, arg]
318
328
  end]
319
329
 
320
- field = GraphQL::Field.define(
330
+ field = nil
331
+
332
+ defns = {
321
333
  name: field_definition.name,
322
334
  description: field_definition.description,
323
335
  type: type_resolver.call(field_definition.type),
324
- arguments: field_arguments,
325
336
  resolve: ->(obj, args, ctx) { default_resolve.call(field, obj, args, ctx) },
326
337
  deprecation_reason: build_deprecation_reason(field_definition.directives),
327
- )
338
+ }
339
+
340
+ if field_arguments.any?
341
+ defns[:arguments] = field_arguments
342
+ end
343
+
344
+ field = GraphQL::Field.define(**defns)
328
345
 
329
346
  field.ast_node = field_definition
330
347
 
@@ -9,8 +9,14 @@ module GraphQL
9
9
  class Directive < GraphQL::Schema::Member
10
10
  extend GraphQL::Schema::Member::HasArguments
11
11
  class << self
12
+ # Return a name based on the class name,
13
+ # but downcase the first letter.
12
14
  def default_graphql_name
13
- super.downcase
15
+ @default_graphql_name ||= begin
16
+ camelized_name = super
17
+ camelized_name[0] = camelized_name[0].downcase
18
+ camelized_name
19
+ end
14
20
  end
15
21
 
16
22
  def locations(*new_locations)
@@ -22,7 +22,10 @@ module GraphQL
22
22
  if schema.disable_introspection_entry_points
23
23
  {}
24
24
  else
25
- get_fields_from_class(class_sym: :EntryPoints)
25
+ entry_point_fields = get_fields_from_class(class_sym: :EntryPoints)
26
+ entry_point_fields.delete('__schema') if schema.disable_schema_introspection_entry_point
27
+ entry_point_fields.delete('__type') if schema.disable_type_introspection_entry_point
28
+ entry_point_fields
26
29
  end
27
30
  @dynamic_fields = get_fields_from_class(class_sym: :DynamicFields)
28
31
  end
@@ -118,14 +118,20 @@ module GraphQL
118
118
  }]
119
119
  )
120
120
  when "FIELD"
121
- GraphQL::Field.define(
121
+ defns = {
122
122
  name: type["name"],
123
123
  type: type_resolver.call(type["type"]),
124
124
  description: type["description"],
125
- arguments: Hash[type["args"].map { |arg|
125
+ }
126
+
127
+ # Avoid passing an empty hash, which warns on Ruby 2.7
128
+ if type["args"].any?
129
+ defns[:arguments] = Hash[type["args"].map { |arg|
126
130
  [arg["name"], define_type(arg.merge("kind" => "ARGUMENT"), type_resolver)]
127
131
  }]
128
- )
132
+ end
133
+
134
+ GraphQL::Field.define(**defns)
129
135
  when "ARGUMENT"
130
136
  kwargs = {}
131
137
  if type["defaultValue"]
@@ -64,7 +64,7 @@ module GraphQL
64
64
 
65
65
  class << self
66
66
  # Override this method to handle legacy-style usages of `MyMutation.field`
67
- def field(*args, &block)
67
+ def field(*args, **kwargs, &block)
68
68
  if args.empty?
69
69
  raise ArgumentError, "#{name}.field is used for adding fields to this mutation. Use `mutation: #{name}` to attach this mutation instead."
70
70
  else
@@ -61,7 +61,7 @@ module GraphQL
61
61
  end
62
62
 
63
63
  return_value = if input_kwargs.any?
64
- super(input_kwargs)
64
+ super(**input_kwargs)
65
65
  else
66
66
  super()
67
67
  end
@@ -76,7 +76,7 @@ module GraphQL
76
76
  context.schema.after_lazy(load_arguments_val) do |loaded_args|
77
77
  # Then call `authorized?`, which may raise or may return a lazy object
78
78
  authorized_val = if loaded_args.any?
79
- authorized?(loaded_args)
79
+ authorized?(**loaded_args)
80
80
  else
81
81
  authorized?
82
82
  end
@@ -39,12 +39,12 @@ module GraphQL
39
39
  def resolve(**args)
40
40
  # Dispatch based on `@mode`, which will raise a `NoMethodError` if we ever
41
41
  # have an unexpected `@mode`
42
- public_send("resolve_#{@mode}", args)
42
+ public_send("resolve_#{@mode}", **args)
43
43
  end
44
44
 
45
45
  # Wrap the user-defined `#subscribe` hook
46
- def resolve_subscribe(args)
47
- ret_val = args.any? ? subscribe(args) : subscribe
46
+ def resolve_subscribe(**args)
47
+ ret_val = args.any? ? subscribe(**args) : subscribe
48
48
  if ret_val == :no_response
49
49
  context.skip
50
50
  else
@@ -62,8 +62,8 @@ module GraphQL
62
62
  end
63
63
 
64
64
  # Wrap the user-provided `#update` hook
65
- def resolve_update(args)
66
- ret_val = args.any? ? update(args) : update
65
+ def resolve_update(**args)
66
+ ret_val = args.any? ? update(**args) : update
67
67
  if ret_val == :no_update
68
68
  raise NoUpdateError
69
69
  else
@@ -19,7 +19,7 @@ module GraphQL
19
19
  # @param abstract_type [Class<GraphQL::Schema::Union>, Module<GraphQL::Schema::Interface>]
20
20
  # @param object_type [Class<GraphQL::Schema::Object>]
21
21
  # @param options [Hash] Any options passed to `.possible_types` or `.implements`
22
- def initialize(abstract_type, object_type, options)
22
+ def initialize(abstract_type, object_type, **options)
23
23
  @abstract_type = abstract_type
24
24
  @object_type = object_type
25
25
  @options = options
@@ -8,7 +8,7 @@ module GraphQL
8
8
  def possible_types(*types, context: GraphQL::Query::NullContext, **options)
9
9
  if types.any?
10
10
  types.each do |t|
11
- type_memberships << type_membership_class.new(self, t, options)
11
+ type_memberships << type_membership_class.new(self, t, **options)
12
12
  end
13
13
  else
14
14
  visible_types = []
@@ -20,7 +20,7 @@ module GraphQL
20
20
  def self.use(defn, options = {})
21
21
  schema = defn.target
22
22
  options[:schema] = schema
23
- schema.subscriptions = self.new(options)
23
+ schema.subscriptions = self.new(**options)
24
24
  instrumentation = Subscriptions::Instrumentation.new(schema: schema)
25
25
  defn.instrument(:field, instrumentation)
26
26
  defn.instrument(:query, instrumentation)
@@ -90,7 +90,7 @@ module GraphQL
90
90
  operation_name = query_data.fetch(:operation_name)
91
91
  # Re-evaluate the saved query
92
92
  result = @schema.execute(
93
- {
93
+ **{
94
94
  query: query_string,
95
95
  context: context,
96
96
  subscription_topic: event.topic,
@@ -24,8 +24,15 @@ module GraphQL
24
24
  # }
25
25
  #
26
26
  class UnionType < GraphQL::BaseType
27
+ # Rubocop was unhappy about the syntax when this was a proc literal
28
+ class AcceptPossibleTypesDefinition
29
+ def self.call(target, possible_types, options = {})
30
+ target.add_possible_types(possible_types, **options)
31
+ end
32
+ end
33
+
27
34
  accepts_definitions :resolve_type, :type_membership_class,
28
- possible_types: ->(target, possible_types, options = {}) { target.add_possible_types(possible_types, options) }
35
+ possible_types: AcceptPossibleTypesDefinition
29
36
  ensure_defined :possible_types, :resolve_type, :resolve_type_proc, :type_membership_class
30
37
 
31
38
  attr_accessor :resolve_type_proc
@@ -72,13 +79,13 @@ module GraphQL
72
79
  # This is a re-assignment, so clear the previous values
73
80
  @type_memberships = []
74
81
  @cached_possible_types = nil
75
- add_possible_types(types, {})
82
+ add_possible_types(types, **{})
76
83
  end
77
84
 
78
- def add_possible_types(types, options)
85
+ def add_possible_types(types, **options)
79
86
  @type_memberships ||= []
80
87
  Array(types).each { |t|
81
- @type_memberships << self.type_membership_class.new(self, t, options)
88
+ @type_memberships << self.type_membership_class.new(self, t, **options)
82
89
  }
83
90
  nil
84
91
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module GraphQL
3
- VERSION = "1.9.17"
3
+ VERSION = "1.9.18"
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: 1.9.17
4
+ version: 1.9.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-17 00:00:00.000000000 Z
11
+ date: 2020-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '11'
201
+ version: '12'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '11'
208
+ version: '12'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rubocop
211
211
  requirement: !ruby/object:Gem::Requirement