graphql 0.16.1 → 0.17.0
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/analysis/query_complexity.rb +20 -13
- data/lib/graphql/analysis/query_depth.rb +2 -2
- data/lib/graphql/argument.rb +7 -2
- data/lib/graphql/base_type.rb +2 -1
- data/lib/graphql/boolean_type.rb +1 -0
- data/lib/graphql/define/assign_object_field.rb +19 -6
- data/lib/graphql/define/instance_definable.rb +44 -3
- data/lib/graphql/directive.rb +2 -6
- data/lib/graphql/enum_type.rb +11 -14
- data/lib/graphql/field.rb +47 -12
- data/lib/graphql/field/resolve.rb +57 -0
- data/lib/graphql/float_type.rb +2 -0
- data/lib/graphql/id_type.rb +2 -0
- data/lib/graphql/input_object_type.rb +5 -1
- data/lib/graphql/int_type.rb +2 -0
- data/lib/graphql/interface_type.rb +1 -1
- data/lib/graphql/internal_representation/node.rb +18 -29
- data/lib/graphql/internal_representation/rewrite.rb +7 -4
- data/lib/graphql/introspection/field_type.rb +1 -1
- data/lib/graphql/introspection/input_value_type.rb +1 -1
- data/lib/graphql/language/parser.rb +161 -136
- data/lib/graphql/language/parser.y +9 -1
- data/lib/graphql/object_type.rb +2 -2
- data/lib/graphql/query.rb +4 -4
- data/lib/graphql/query/directive_resolution.rb +2 -2
- data/lib/graphql/query/serial_execution/execution_context.rb +3 -2
- data/lib/graphql/query/serial_execution/field_resolution.rb +2 -5
- data/lib/graphql/query/serial_execution/selection_resolution.rb +1 -1
- data/lib/graphql/query/serial_execution/value_resolution.rb +2 -2
- data/lib/graphql/scalar_type.rb +2 -0
- data/lib/graphql/schema/timeout_middleware.rb +1 -0
- data/lib/graphql/string_type.rb +2 -0
- data/lib/graphql/union_type.rb +1 -1
- data/lib/graphql/version.rb +1 -1
- data/readme.md +1 -3
- data/spec/graphql/analysis/query_complexity_spec.rb +41 -5
- data/spec/graphql/define/instance_definable_spec.rb +2 -2
- data/spec/graphql/field_spec.rb +18 -0
- data/spec/graphql/internal_representation/rewrite_spec.rb +7 -6
- data/spec/graphql/language/parser_spec.rb +5 -0
- data/spec/graphql/query/serial_execution/execution_context_spec.rb +2 -1
- data/spec/graphql/schema/timeout_middleware_spec.rb +29 -28
- data/spec/support/dairy_app.rb +12 -10
- metadata +3 -3
- data/lib/graphql/internal_representation/definition.rb +0 -0
data/spec/support/dairy_app.rb
CHANGED
@@ -27,7 +27,7 @@ end
|
|
27
27
|
CheeseType = GraphQL::ObjectType.define do
|
28
28
|
name "Cheese"
|
29
29
|
description "Cultured dairy product"
|
30
|
-
interfaces [
|
30
|
+
interfaces [EdibleInterface, AnimalProductInterface]
|
31
31
|
|
32
32
|
# Can have (name, type, desc)
|
33
33
|
field :id, !types.Int, "Unique identifier"
|
@@ -37,8 +37,8 @@ CheeseType = GraphQL::ObjectType.define do
|
|
37
37
|
field :source, !DairyAnimalEnum,
|
38
38
|
"Animal which produced the milk for this cheese"
|
39
39
|
|
40
|
-
# Or can define by block
|
41
|
-
field :similarCheese,
|
40
|
+
# Or can define by block, `resolve ->` should override `property:`
|
41
|
+
field :similarCheese, CheeseType, "Cheeses like this one", property: :nonsense do
|
42
42
|
argument :source, !types[!DairyAnimalEnum]
|
43
43
|
resolve -> (t, a, c) {
|
44
44
|
# get the strings out:
|
@@ -51,12 +51,12 @@ CheeseType = GraphQL::ObjectType.define do
|
|
51
51
|
}
|
52
52
|
end
|
53
53
|
|
54
|
-
field :nullableCheese,
|
54
|
+
field :nullableCheese, CheeseType, "Cheeses like this one" do
|
55
55
|
argument :source, types[!DairyAnimalEnum]
|
56
56
|
resolve -> (t, a, c) { raise("NotImplemented") }
|
57
57
|
end
|
58
58
|
|
59
|
-
field :deeplyNullableCheese,
|
59
|
+
field :deeplyNullableCheese, CheeseType, "Cheeses like this one" do
|
60
60
|
argument :source, types[types[DairyAnimalEnum]]
|
61
61
|
resolve -> (t, a, c) { raise("NotImplemented") }
|
62
62
|
end
|
@@ -73,7 +73,7 @@ MilkType = GraphQL::ObjectType.define do
|
|
73
73
|
description "Dairy beverage"
|
74
74
|
interfaces [EdibleInterface, AnimalProductInterface]
|
75
75
|
field :id, !types.ID
|
76
|
-
field :source, DairyAnimalEnum, "Animal which produced this milk"
|
76
|
+
field :source, DairyAnimalEnum, "Animal which produced this milk", hash_key: :source
|
77
77
|
field :origin, !types.String, "Place the milk comes from"
|
78
78
|
field :flavors, types[types.String], "Chocolate, Strawberry, etc" do
|
79
79
|
argument :limit, types.Int
|
@@ -113,6 +113,7 @@ end
|
|
113
113
|
DairyProductUnion = GraphQL::UnionType.define do
|
114
114
|
name "DairyProduct"
|
115
115
|
description "Kinds of food made from milk"
|
116
|
+
# Test that these forms of declaration still work:
|
116
117
|
possible_types ["MilkType", -> { CheeseType }]
|
117
118
|
end
|
118
119
|
|
@@ -163,7 +164,7 @@ DeepNonNullType = GraphQL::ObjectType.define do
|
|
163
164
|
resolve -> (obj, args, ctx) { args[:returning] }
|
164
165
|
end
|
165
166
|
|
166
|
-
field :deepNonNull,
|
167
|
+
field :deepNonNull, DeepNonNullType.to_non_null_type do
|
167
168
|
resolve -> (obj, args, ctx) { :deepNonNull }
|
168
169
|
end
|
169
170
|
end
|
@@ -208,11 +209,12 @@ SourceFieldDefn = Proc.new {
|
|
208
209
|
}
|
209
210
|
}
|
210
211
|
|
211
|
-
FavoriteFieldDefn =
|
212
|
+
FavoriteFieldDefn = GraphQL::Field.define do
|
213
|
+
name "favoriteEdible"
|
212
214
|
description "My favorite food"
|
213
215
|
type EdibleInterface
|
214
216
|
resolve -> (t, a, c) { MILKS[1] }
|
215
|
-
|
217
|
+
end
|
216
218
|
|
217
219
|
QueryType = GraphQL::ObjectType.define do
|
218
220
|
name "Query"
|
@@ -224,7 +226,7 @@ QueryType = GraphQL::ObjectType.define do
|
|
224
226
|
field :milk, field: FetchField.create(type: MilkType, data: MILKS, id_type: !types.ID)
|
225
227
|
field :dairy, field: SingletonField.create(type: DairyType, data: DAIRY)
|
226
228
|
field :fromSource, &SourceFieldDefn
|
227
|
-
field :favoriteEdible,
|
229
|
+
field :favoriteEdible, FavoriteFieldDefn
|
228
230
|
field :cow, field: SingletonField.create(type: CowType, data: COW)
|
229
231
|
field :searchDairy do
|
230
232
|
description "Find dairy products matching a description"
|
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: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Mosolgo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codeclimate-test-reporter
|
@@ -213,13 +213,13 @@ files:
|
|
213
213
|
- lib/graphql/enum_type.rb
|
214
214
|
- lib/graphql/execution_error.rb
|
215
215
|
- lib/graphql/field.rb
|
216
|
+
- lib/graphql/field/resolve.rb
|
216
217
|
- lib/graphql/float_type.rb
|
217
218
|
- lib/graphql/id_type.rb
|
218
219
|
- lib/graphql/input_object_type.rb
|
219
220
|
- lib/graphql/int_type.rb
|
220
221
|
- lib/graphql/interface_type.rb
|
221
222
|
- lib/graphql/internal_representation.rb
|
222
|
-
- lib/graphql/internal_representation/definition.rb
|
223
223
|
- lib/graphql/internal_representation/node.rb
|
224
224
|
- lib/graphql/internal_representation/rewrite.rb
|
225
225
|
- lib/graphql/introspection.rb
|
File without changes
|