graphql 1.8.0.pre2 → 1.8.0.pre3
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 +4 -4
- data/lib/graphql.rb +1 -1
- data/lib/graphql/deprecated_dsl.rb +2 -0
- data/lib/graphql/enum_type.rb +1 -1
- data/lib/graphql/field.rb +10 -1
- data/lib/graphql/input_object_type.rb +3 -1
- data/lib/graphql/introspection.rb +3 -10
- data/lib/graphql/introspection/base_object.rb +15 -0
- data/lib/graphql/introspection/directive_location_enum.rb +11 -7
- data/lib/graphql/introspection/directive_type.rb +23 -16
- data/lib/graphql/introspection/dynamic_fields.rb +11 -0
- data/lib/graphql/introspection/entry_points.rb +29 -0
- data/lib/graphql/introspection/enum_value_type.rb +16 -11
- data/lib/graphql/introspection/field_type.rb +21 -12
- data/lib/graphql/introspection/input_value_type.rb +26 -23
- data/lib/graphql/introspection/schema_field.rb +7 -2
- data/lib/graphql/introspection/schema_type.rb +36 -22
- data/lib/graphql/introspection/type_by_name_field.rb +10 -2
- data/lib/graphql/introspection/type_kind_enum.rb +10 -6
- data/lib/graphql/introspection/type_type.rb +85 -23
- data/lib/graphql/introspection/typename_field.rb +1 -0
- data/lib/graphql/language.rb +1 -0
- data/lib/graphql/language/document_from_schema_definition.rb +129 -37
- data/lib/graphql/language/generation.rb +3 -182
- data/lib/graphql/language/nodes.rb +12 -2
- data/lib/graphql/language/parser.rb +63 -55
- data/lib/graphql/language/parser.y +2 -1
- data/lib/graphql/language/printer.rb +351 -0
- data/lib/graphql/object_type.rb +1 -1
- data/lib/graphql/query.rb +1 -1
- data/lib/graphql/query/arguments.rb +24 -8
- data/lib/graphql/query/context.rb +3 -0
- data/lib/graphql/query/literal_input.rb +4 -1
- data/lib/graphql/railtie.rb +28 -6
- data/lib/graphql/schema.rb +42 -7
- data/lib/graphql/schema/enum.rb +1 -0
- data/lib/graphql/schema/field.rb +26 -5
- data/lib/graphql/schema/field/dynamic_resolve.rb +18 -9
- data/lib/graphql/schema/input_object.rb +2 -2
- data/lib/graphql/schema/introspection_system.rb +93 -0
- data/lib/graphql/schema/late_bound_type.rb +32 -0
- data/lib/graphql/schema/member.rb +21 -1
- data/lib/graphql/schema/member/build_type.rb +8 -6
- data/lib/graphql/schema/member/has_fields.rb +1 -1
- data/lib/graphql/schema/member/instrumentation.rb +3 -1
- data/lib/graphql/schema/member/list_type_proxy.rb +4 -0
- data/lib/graphql/schema/member/non_null_type_proxy.rb +4 -0
- data/lib/graphql/schema/object.rb +2 -1
- data/lib/graphql/schema/printer.rb +33 -266
- data/lib/graphql/schema/traversal.rb +74 -6
- data/lib/graphql/schema/validation.rb +3 -2
- data/lib/graphql/static_validation/rules/fields_are_defined_on_type.rb +6 -6
- data/lib/graphql/tracing/scout_tracing.rb +2 -2
- data/lib/graphql/upgrader/member.rb +463 -63
- data/lib/graphql/version.rb +1 -1
- data/spec/fixtures/upgrader/blame_range.original.rb +43 -0
- data/spec/fixtures/upgrader/blame_range.transformed.rb +31 -0
- data/spec/fixtures/upgrader/subscribable.original.rb +51 -0
- data/spec/fixtures/upgrader/subscribable.transformed.rb +46 -0
- data/spec/fixtures/upgrader/type_x.original.rb +35 -0
- data/spec/fixtures/upgrader/type_x.transformed.rb +35 -0
- data/spec/graphql/language/document_from_schema_definition_spec.rb +729 -296
- data/spec/graphql/language/generation_spec.rb +21 -186
- data/spec/graphql/language/nodes_spec.rb +21 -0
- data/spec/graphql/language/printer_spec.rb +203 -0
- data/spec/graphql/query/arguments_spec.rb +14 -4
- data/spec/graphql/query/context_spec.rb +17 -0
- data/spec/graphql/schema/build_from_definition_spec.rb +13 -4
- data/spec/graphql/schema/field_spec.rb +14 -0
- data/spec/graphql/schema/introspection_system_spec.rb +39 -0
- data/spec/graphql/schema/object_spec.rb +12 -1
- data/spec/graphql/schema/printer_spec.rb +14 -14
- data/spec/graphql/tracing/platform_tracing_spec.rb +2 -2
- data/spec/graphql/upgrader/member_spec.rb +274 -62
- data/spec/support/jazz.rb +75 -3
- metadata +38 -9
- data/lib/graphql/introspection/arguments_field.rb +0 -7
- data/lib/graphql/introspection/enum_values_field.rb +0 -18
- data/lib/graphql/introspection/fields_field.rb +0 -13
- data/lib/graphql/introspection/input_fields_field.rb +0 -12
- data/lib/graphql/introspection/interfaces_field.rb +0 -11
- data/lib/graphql/introspection/of_type_field.rb +0 -6
- data/lib/graphql/introspection/possible_types_field.rb +0 -11
data/spec/support/jazz.rb
CHANGED
@@ -59,9 +59,9 @@ module Jazz
|
|
59
59
|
# A custom field class that supports the `upcase:` option
|
60
60
|
class BaseField < GraphQL::Schema::Field
|
61
61
|
argument_class BaseArgument
|
62
|
-
def initialize(*args, options, &block)
|
62
|
+
def initialize(*args, **options, &block)
|
63
63
|
@upcase = options.delete(:upcase)
|
64
|
-
super(*args, options, &block)
|
64
|
+
super(*args, **options, &block)
|
65
65
|
end
|
66
66
|
|
67
67
|
def to_graphql
|
@@ -197,8 +197,19 @@ module Jazz
|
|
197
197
|
implements GloballyIdentifiableType
|
198
198
|
implements NamedEntity
|
199
199
|
description "Someone who plays an instrument"
|
200
|
-
field :instrument, InstrumentType, null: false
|
200
|
+
field :instrument, InstrumentType, null: false do
|
201
|
+
description "An object played in order to produce music"
|
202
|
+
end
|
201
203
|
field :favorite_key, Key, null: true
|
204
|
+
field :inspect_context, [String], null: false
|
205
|
+
|
206
|
+
def inspect_context
|
207
|
+
[
|
208
|
+
@context.custom_method,
|
209
|
+
@context[:magic_key],
|
210
|
+
@context[:normal_key]
|
211
|
+
]
|
212
|
+
end
|
202
213
|
end
|
203
214
|
|
204
215
|
LegacyInputType = GraphQL::InputObjectType.define do
|
@@ -260,6 +271,7 @@ module Jazz
|
|
260
271
|
field :nowPlaying, PerformingAct, null: false, resolve: ->(o, a, c) { Models.data["Ensemble"].first }
|
261
272
|
# For asserting that the object is initialized once:
|
262
273
|
field :object_id, Integer, null: false
|
274
|
+
field :inspect_context, [String], null: false
|
263
275
|
|
264
276
|
def ensembles
|
265
277
|
Models.data["Ensemble"]
|
@@ -297,6 +309,14 @@ module Jazz
|
|
297
309
|
def inspect_key(key:)
|
298
310
|
key
|
299
311
|
end
|
312
|
+
|
313
|
+
def inspect_context
|
314
|
+
[
|
315
|
+
@context.custom_method,
|
316
|
+
@context[:magic_key],
|
317
|
+
@context[:normal_key]
|
318
|
+
]
|
319
|
+
end
|
300
320
|
end
|
301
321
|
|
302
322
|
class EnsembleInput < GraphQL::Schema::InputObject
|
@@ -321,10 +341,62 @@ module Jazz
|
|
321
341
|
end
|
322
342
|
end
|
323
343
|
|
344
|
+
class CustomContext < GraphQL::Query::Context
|
345
|
+
def [](key)
|
346
|
+
if key == :magic_key
|
347
|
+
"magic_value"
|
348
|
+
else
|
349
|
+
super
|
350
|
+
end
|
351
|
+
end
|
352
|
+
|
353
|
+
def custom_method
|
354
|
+
"custom_method"
|
355
|
+
end
|
356
|
+
end
|
357
|
+
|
358
|
+
module Introspection
|
359
|
+
class TypeType < GraphQL::Introspection::TypeType
|
360
|
+
def name
|
361
|
+
@object.name.upcase
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
class SchemaType < GraphQL::Introspection::SchemaType
|
366
|
+
graphql_name "__Schema"
|
367
|
+
|
368
|
+
field :is_jazzy, Boolean, null: false
|
369
|
+
def is_jazzy
|
370
|
+
true
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
class DynamicFields < GraphQL::Introspection::DynamicFields
|
375
|
+
field :__typename_length, Integer, null: false, extras: [:irep_node]
|
376
|
+
field :__ast_node_class, String, null: false, extras: [:ast_node]
|
377
|
+
def __typename_length(irep_node:)
|
378
|
+
__typename(irep_node: irep_node).length
|
379
|
+
end
|
380
|
+
|
381
|
+
def __ast_node_class(ast_node:)
|
382
|
+
ast_node.class.name
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
386
|
+
class EntryPoints < GraphQL::Introspection::EntryPoints
|
387
|
+
field :__classname, String, "The Ruby class name of the root object", null: false
|
388
|
+
def __classname
|
389
|
+
@object.class.name
|
390
|
+
end
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
324
394
|
# New-style Schema definition
|
325
395
|
class Schema < GraphQL::Schema
|
326
396
|
query(Query)
|
327
397
|
mutation(Mutation)
|
398
|
+
context_class CustomContext
|
399
|
+
introspection(Introspection)
|
328
400
|
use MetadataPlugin, value: "xyz"
|
329
401
|
def self.resolve_type(type, obj, ctx)
|
330
402
|
class_name = obj.class.name.split("::").last
|
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.8.0.
|
4
|
+
version: 1.8.0.pre3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: benchmark-ips
|
@@ -248,6 +248,20 @@ dependencies:
|
|
248
248
|
- - ">="
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: parser
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
251
265
|
- !ruby/object:Gem::Dependency
|
252
266
|
name: jekyll
|
253
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -396,19 +410,15 @@ files:
|
|
396
410
|
- lib/graphql/internal_representation/scope.rb
|
397
411
|
- lib/graphql/internal_representation/visit.rb
|
398
412
|
- lib/graphql/introspection.rb
|
399
|
-
- lib/graphql/introspection/
|
413
|
+
- lib/graphql/introspection/base_object.rb
|
400
414
|
- lib/graphql/introspection/directive_location_enum.rb
|
401
415
|
- lib/graphql/introspection/directive_type.rb
|
416
|
+
- lib/graphql/introspection/dynamic_fields.rb
|
417
|
+
- lib/graphql/introspection/entry_points.rb
|
402
418
|
- lib/graphql/introspection/enum_value_type.rb
|
403
|
-
- lib/graphql/introspection/enum_values_field.rb
|
404
419
|
- lib/graphql/introspection/field_type.rb
|
405
|
-
- lib/graphql/introspection/fields_field.rb
|
406
|
-
- lib/graphql/introspection/input_fields_field.rb
|
407
420
|
- lib/graphql/introspection/input_value_type.rb
|
408
|
-
- lib/graphql/introspection/interfaces_field.rb
|
409
421
|
- lib/graphql/introspection/introspection_query.rb
|
410
|
-
- lib/graphql/introspection/of_type_field.rb
|
411
|
-
- lib/graphql/introspection/possible_types_field.rb
|
412
422
|
- lib/graphql/introspection/schema_field.rb
|
413
423
|
- lib/graphql/introspection/schema_type.rb
|
414
424
|
- lib/graphql/introspection/type_by_name_field.rb
|
@@ -427,6 +437,7 @@ files:
|
|
427
437
|
- lib/graphql/language/nodes.rb
|
428
438
|
- lib/graphql/language/parser.rb
|
429
439
|
- lib/graphql/language/parser.y
|
440
|
+
- lib/graphql/language/printer.rb
|
430
441
|
- lib/graphql/language/token.rb
|
431
442
|
- lib/graphql/language/visitor.rb
|
432
443
|
- lib/graphql/list_type.rb
|
@@ -489,7 +500,9 @@ files:
|
|
489
500
|
- lib/graphql/schema/field/unwrapped_resolve.rb
|
490
501
|
- lib/graphql/schema/input_object.rb
|
491
502
|
- lib/graphql/schema/interface.rb
|
503
|
+
- lib/graphql/schema/introspection_system.rb
|
492
504
|
- lib/graphql/schema/invalid_type_error.rb
|
505
|
+
- lib/graphql/schema/late_bound_type.rb
|
493
506
|
- lib/graphql/schema/loader.rb
|
494
507
|
- lib/graphql/schema/member.rb
|
495
508
|
- lib/graphql/schema/member/build_type.rb
|
@@ -869,6 +882,12 @@ files:
|
|
869
882
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/zy/zywotY5ANjNyE78CLDqC1eYRFwL1ZFzkT9J5LzNlI4M.cache
|
870
883
|
- spec/dummy/tmp/restart.txt
|
871
884
|
- spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png
|
885
|
+
- spec/fixtures/upgrader/blame_range.original.rb
|
886
|
+
- spec/fixtures/upgrader/blame_range.transformed.rb
|
887
|
+
- spec/fixtures/upgrader/subscribable.original.rb
|
888
|
+
- spec/fixtures/upgrader/subscribable.transformed.rb
|
889
|
+
- spec/fixtures/upgrader/type_x.original.rb
|
890
|
+
- spec/fixtures/upgrader/type_x.transformed.rb
|
872
891
|
- spec/generators/graphql/enum_generator_spec.rb
|
873
892
|
- spec/generators/graphql/function_generator_spec.rb
|
874
893
|
- spec/generators/graphql/install_generator_spec.rb
|
@@ -925,6 +944,7 @@ files:
|
|
925
944
|
- spec/graphql/language/lexer_spec.rb
|
926
945
|
- spec/graphql/language/nodes_spec.rb
|
927
946
|
- spec/graphql/language/parser_spec.rb
|
947
|
+
- spec/graphql/language/printer_spec.rb
|
928
948
|
- spec/graphql/language/visitor_spec.rb
|
929
949
|
- spec/graphql/list_type_spec.rb
|
930
950
|
- spec/graphql/non_null_type_spec.rb
|
@@ -957,6 +977,7 @@ files:
|
|
957
977
|
- spec/graphql/schema/input_object_spec.rb
|
958
978
|
- spec/graphql/schema/instrumentation_spec.rb
|
959
979
|
- spec/graphql/schema/interface_spec.rb
|
980
|
+
- spec/graphql/schema/introspection_system_spec.rb
|
960
981
|
- spec/graphql/schema/loader_spec.rb
|
961
982
|
- spec/graphql/schema/middleware_chain_spec.rb
|
962
983
|
- spec/graphql/schema/object_spec.rb
|
@@ -1350,6 +1371,12 @@ test_files:
|
|
1350
1371
|
- spec/dummy/tmp/cache/assets/sprockets/v3.0/Zz/Zzsh2ASGqBSWLSWIU4fAyxS3iVuJDxdTCw8jOOsUNzA.cache
|
1351
1372
|
- spec/dummy/tmp/restart.txt
|
1352
1373
|
- spec/dummy/tmp/screenshots/failures_test_it_handles_subscriptions.png
|
1374
|
+
- spec/fixtures/upgrader/blame_range.original.rb
|
1375
|
+
- spec/fixtures/upgrader/blame_range.transformed.rb
|
1376
|
+
- spec/fixtures/upgrader/subscribable.original.rb
|
1377
|
+
- spec/fixtures/upgrader/subscribable.transformed.rb
|
1378
|
+
- spec/fixtures/upgrader/type_x.original.rb
|
1379
|
+
- spec/fixtures/upgrader/type_x.transformed.rb
|
1353
1380
|
- spec/generators/graphql/enum_generator_spec.rb
|
1354
1381
|
- spec/generators/graphql/function_generator_spec.rb
|
1355
1382
|
- spec/generators/graphql/install_generator_spec.rb
|
@@ -1406,6 +1433,7 @@ test_files:
|
|
1406
1433
|
- spec/graphql/language/lexer_spec.rb
|
1407
1434
|
- spec/graphql/language/nodes_spec.rb
|
1408
1435
|
- spec/graphql/language/parser_spec.rb
|
1436
|
+
- spec/graphql/language/printer_spec.rb
|
1409
1437
|
- spec/graphql/language/visitor_spec.rb
|
1410
1438
|
- spec/graphql/list_type_spec.rb
|
1411
1439
|
- spec/graphql/non_null_type_spec.rb
|
@@ -1438,6 +1466,7 @@ test_files:
|
|
1438
1466
|
- spec/graphql/schema/input_object_spec.rb
|
1439
1467
|
- spec/graphql/schema/instrumentation_spec.rb
|
1440
1468
|
- spec/graphql/schema/interface_spec.rb
|
1469
|
+
- spec/graphql/schema/introspection_system_spec.rb
|
1441
1470
|
- spec/graphql/schema/loader_spec.rb
|
1442
1471
|
- spec/graphql/schema/middleware_chain_spec.rb
|
1443
1472
|
- spec/graphql/schema/object_spec.rb
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
GraphQL::Introspection::EnumValuesField = GraphQL::Field.define do
|
3
|
-
type types[!GraphQL::Introspection::EnumValueType]
|
4
|
-
argument :includeDeprecated, types.Boolean, default_value: false
|
5
|
-
resolve ->(object, arguments, context) do
|
6
|
-
if !object.kind.enum?
|
7
|
-
nil
|
8
|
-
else
|
9
|
-
enum_values = context.warden.enum_values(object)
|
10
|
-
|
11
|
-
if !arguments["includeDeprecated"]
|
12
|
-
enum_values = enum_values.select {|f| !f.deprecation_reason }
|
13
|
-
end
|
14
|
-
|
15
|
-
enum_values
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
GraphQL::Introspection::FieldsField = GraphQL::Field.define do
|
3
|
-
type -> { types[!GraphQL::Introspection::FieldType] }
|
4
|
-
argument :includeDeprecated, GraphQL::BOOLEAN_TYPE, default_value: false
|
5
|
-
resolve ->(object, arguments, context) {
|
6
|
-
return nil if !object.kind.fields?
|
7
|
-
fields = context.warden.fields(object)
|
8
|
-
if !arguments["includeDeprecated"]
|
9
|
-
fields = fields.select {|f| !f.deprecation_reason }
|
10
|
-
end
|
11
|
-
fields.sort_by(&:name)
|
12
|
-
}
|
13
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
GraphQL::Introspection::InputFieldsField = GraphQL::Field.define do
|
3
|
-
name "inputFields"
|
4
|
-
type types[!GraphQL::Introspection::InputValueType]
|
5
|
-
resolve ->(target, a, ctx) {
|
6
|
-
if target.kind.input_object?
|
7
|
-
ctx.warden.arguments(target)
|
8
|
-
else
|
9
|
-
nil
|
10
|
-
end
|
11
|
-
}
|
12
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
GraphQL::Introspection::InterfacesField = GraphQL::Field.define do
|
3
|
-
type -> { types[!GraphQL::Introspection::TypeType] }
|
4
|
-
resolve ->(target, a, ctx) {
|
5
|
-
if target.kind == GraphQL::TypeKinds::OBJECT
|
6
|
-
ctx.warden.interfaces(target)
|
7
|
-
else
|
8
|
-
nil
|
9
|
-
end
|
10
|
-
}
|
11
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
GraphQL::Introspection::PossibleTypesField = GraphQL::Field.define do
|
3
|
-
type -> { types[!GraphQL::Introspection::TypeType] }
|
4
|
-
resolve ->(target, args, ctx) {
|
5
|
-
if target.kind.resolves?
|
6
|
-
ctx.warden.possible_types(target)
|
7
|
-
else
|
8
|
-
nil
|
9
|
-
end
|
10
|
-
}
|
11
|
-
end
|