graphql 1.8.0.pre4 → 1.8.0.pre5

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/base_type.rb +10 -27
  3. data/lib/graphql/compatibility/query_parser_specification.rb +7 -0
  4. data/lib/graphql/field.rb +3 -3
  5. data/lib/graphql/internal_representation/node.rb +32 -13
  6. data/lib/graphql/internal_representation/visit.rb +3 -6
  7. data/lib/graphql/language.rb +1 -0
  8. data/lib/graphql/language/block_string.rb +47 -0
  9. data/lib/graphql/language/lexer.rb +129 -68
  10. data/lib/graphql/language/lexer.rl +13 -4
  11. data/lib/graphql/language/nodes.rb +6 -3
  12. data/lib/graphql/language/printer.rb +1 -1
  13. data/lib/graphql/language/token.rb +1 -1
  14. data/lib/graphql/query.rb +1 -1
  15. data/lib/graphql/relay.rb +1 -0
  16. data/lib/graphql/relay/connection_type.rb +5 -3
  17. data/lib/graphql/relay/edge_type.rb +2 -1
  18. data/lib/graphql/relay/type_extensions.rb +30 -0
  19. data/lib/graphql/schema.rb +25 -0
  20. data/lib/graphql/schema/build_from_definition.rb +2 -0
  21. data/lib/graphql/schema/field.rb +3 -0
  22. data/lib/graphql/schema/finder.rb +153 -0
  23. data/lib/graphql/schema/member.rb +3 -1
  24. data/lib/graphql/schema/printer.rb +1 -1
  25. data/lib/graphql/static_validation/rules/fields_will_merge.rb +15 -8
  26. data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +11 -1
  27. data/lib/graphql/tracing/data_dog_tracing.rb +13 -9
  28. data/lib/graphql/upgrader/member.rb +19 -8
  29. data/lib/graphql/version.rb +1 -1
  30. data/spec/graphql/backtrace_spec.rb +10 -0
  31. data/spec/graphql/directive_spec.rb +3 -1
  32. data/spec/graphql/language/block_string_spec.rb +70 -0
  33. data/spec/graphql/language/lexer_spec.rb +9 -0
  34. data/spec/graphql/query_spec.rb +1 -1
  35. data/spec/graphql/schema/field_spec.rb +8 -0
  36. data/spec/graphql/schema/finder_spec.rb +135 -0
  37. data/spec/graphql/schema/printer_spec.rb +48 -5
  38. data/spec/graphql/schema_spec.rb +7 -0
  39. data/spec/graphql/upgrader/member_spec.rb +25 -0
  40. metadata +23 -2
@@ -17,6 +17,13 @@ describe GraphQL::Schema do
17
17
  end
18
18
  end
19
19
 
20
+ describe "#find" do
21
+ it "finds a member using a string path" do
22
+ field = schema.find("Edible.fatContent")
23
+ assert_equal "fatContent", field.name
24
+ end
25
+ end
26
+
20
27
  describe "#union_memberships" do
21
28
  it "returns a list of unions that include the type" do
22
29
  assert_equal [schema.types["Animal"], schema.types["AnimalAsCow"]], schema.union_memberships(schema.types["Cow"])
@@ -251,6 +251,31 @@ describe GraphQL::Upgrader::Member do
251
251
  }
252
252
  assert_equal new, upgrade(old)
253
253
  end
254
+
255
+ it "fixes argument access: string -> sym, camel -> underscore" do
256
+ old = %{
257
+ field :firstName, !types.String do
258
+ argument :someArg, types.String, default_value: "abc"
259
+ argument :someArg2, types.String, default_value: "abc"
260
+ resolve ->(obj, args, ctx) {
261
+ args["someArg"] if args.key?("someArg")
262
+ args[:someArg2]
263
+ }
264
+ end
265
+ }
266
+ new = %{
267
+ field :first_name, String, null: false do
268
+ argument :some_arg, String, default_value: "abc", required: false
269
+ argument :some_arg2, String, default_value: "abc", required: false
270
+ end
271
+
272
+ def first_name(**args)
273
+ args[:some_arg] if args.key?(:some_arg)
274
+ args[:some_arg2]
275
+ end
276
+ }
277
+ assert_equal new, upgrade(old)
278
+ end
254
279
  end
255
280
 
256
281
 
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.pre4
4
+ version: 1.8.0.pre5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Mosolgo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-18 00:00:00.000000000 Z
11
+ date: 2018-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: benchmark-ips
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 3.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: memory_profiler
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: minitest
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -428,6 +442,7 @@ files:
428
442
  - lib/graphql/invalid_name_error.rb
429
443
  - lib/graphql/invalid_null_error.rb
430
444
  - lib/graphql/language.rb
445
+ - lib/graphql/language/block_string.rb
431
446
  - lib/graphql/language/comments.rb
432
447
  - lib/graphql/language/definition_slice.rb
433
448
  - lib/graphql/language/document_from_schema_definition.rb
@@ -483,6 +498,7 @@ files:
483
498
  - lib/graphql/relay/page_info.rb
484
499
  - lib/graphql/relay/range_add.rb
485
500
  - lib/graphql/relay/relation_connection.rb
501
+ - lib/graphql/relay/type_extensions.rb
486
502
  - lib/graphql/runtime_type_error.rb
487
503
  - lib/graphql/scalar_type.rb
488
504
  - lib/graphql/schema.rb
@@ -498,6 +514,7 @@ files:
498
514
  - lib/graphql/schema/field.rb
499
515
  - lib/graphql/schema/field/dynamic_resolve.rb
500
516
  - lib/graphql/schema/field/unwrapped_resolve.rb
517
+ - lib/graphql/schema/finder.rb
501
518
  - lib/graphql/schema/input_object.rb
502
519
  - lib/graphql/schema/interface.rb
503
520
  - lib/graphql/schema/introspection_system.rb
@@ -937,6 +954,7 @@ files:
937
954
  - spec/graphql/introspection/schema_type_spec.rb
938
955
  - spec/graphql/introspection/type_by_name_field_spec.rb
939
956
  - spec/graphql/introspection/type_type_spec.rb
957
+ - spec/graphql/language/block_string_spec.rb
940
958
  - spec/graphql/language/definition_slice_spec.rb
941
959
  - spec/graphql/language/document_from_schema_definition_spec.rb
942
960
  - spec/graphql/language/equality_spec.rb
@@ -974,6 +992,7 @@ files:
974
992
  - spec/graphql/schema/catchall_middleware_spec.rb
975
993
  - spec/graphql/schema/enum_spec.rb
976
994
  - spec/graphql/schema/field_spec.rb
995
+ - spec/graphql/schema/finder_spec.rb
977
996
  - spec/graphql/schema/input_object_spec.rb
978
997
  - spec/graphql/schema/instrumentation_spec.rb
979
998
  - spec/graphql/schema/interface_spec.rb
@@ -1426,6 +1445,7 @@ test_files:
1426
1445
  - spec/graphql/introspection/schema_type_spec.rb
1427
1446
  - spec/graphql/introspection/type_by_name_field_spec.rb
1428
1447
  - spec/graphql/introspection/type_type_spec.rb
1448
+ - spec/graphql/language/block_string_spec.rb
1429
1449
  - spec/graphql/language/definition_slice_spec.rb
1430
1450
  - spec/graphql/language/document_from_schema_definition_spec.rb
1431
1451
  - spec/graphql/language/equality_spec.rb
@@ -1463,6 +1483,7 @@ test_files:
1463
1483
  - spec/graphql/schema/catchall_middleware_spec.rb
1464
1484
  - spec/graphql/schema/enum_spec.rb
1465
1485
  - spec/graphql/schema/field_spec.rb
1486
+ - spec/graphql/schema/finder_spec.rb
1466
1487
  - spec/graphql/schema/input_object_spec.rb
1467
1488
  - spec/graphql/schema/instrumentation_spec.rb
1468
1489
  - spec/graphql/schema/interface_spec.rb