graphql 1.8.0.pre2 → 1.8.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|