graphql 1.2.2 → 1.2.3
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/language/lexer.rb +18 -15
- data/lib/graphql/language/lexer.rl +11 -8
- data/lib/graphql/query/arguments.rb +6 -5
- data/lib/graphql/version.rb +1 -1
- data/spec/graphql/enum_type_spec.rb +30 -0
- data/spec/graphql/language/lexer_spec.rb +6 -0
- data/spec/graphql/query/arguments_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 280ed673cf1dbbf668aa99c14d43ab9ac9b97af8
|
4
|
+
data.tar.gz: c2b66a6c3bcad312b56bdf565dfd39475e0f627d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7147139cddf0a0381c16cbc95ef614d00d6fe6993db51648d04b66d020f75cfad00e36ba1ec31e5ac04e793f55e54b898410cd0da9e1ba9d452465257abdbd7a
|
7
|
+
data.tar.gz: d8b2f834717227a408bd4a953f0dcbc82f8e05941fd848230c1895744bfdadddd45bdd50b61ca07e58eb091de1a648ad9c175b4149f3be77da83c7afd524911f
|
@@ -499,15 +499,18 @@ self.graphql_lexer_en_main = 6;
|
|
499
499
|
data = query_string.unpack("c*")
|
500
500
|
eof = data.length
|
501
501
|
|
502
|
+
# Since `Lexer` is a module, store all lexer state
|
503
|
+
# in this local variable:
|
502
504
|
meta = {
|
503
505
|
line: 1,
|
504
506
|
col: 1,
|
505
507
|
data: data,
|
506
|
-
tokens: []
|
508
|
+
tokens: [],
|
509
|
+
previous_token: nil,
|
507
510
|
}
|
508
511
|
|
509
512
|
|
510
|
-
# line
|
513
|
+
# line 514 "lib/graphql/language/lexer.rb"
|
511
514
|
begin
|
512
515
|
p ||= 0
|
513
516
|
pe ||= data.length
|
@@ -517,14 +520,14 @@ begin
|
|
517
520
|
act = 0
|
518
521
|
end
|
519
522
|
|
520
|
-
# line
|
523
|
+
# line 135 "lib/graphql/language/lexer.rl"
|
521
524
|
|
522
525
|
emit_token = ->(name) {
|
523
526
|
emit(name, ts, te, meta)
|
524
527
|
}
|
525
528
|
|
526
529
|
|
527
|
-
# line
|
530
|
+
# line 531 "lib/graphql/language/lexer.rb"
|
528
531
|
begin
|
529
532
|
_klen, _trans, _keys, _acts, _nacts = nil
|
530
533
|
_goto_level = 0
|
@@ -554,7 +557,7 @@ begin
|
|
554
557
|
begin
|
555
558
|
ts = p
|
556
559
|
end
|
557
|
-
# line
|
560
|
+
# line 561 "lib/graphql/language/lexer.rb"
|
558
561
|
end # from state action switch
|
559
562
|
end
|
560
563
|
if _trigger_goto
|
@@ -932,7 +935,7 @@ when 49 then
|
|
932
935
|
emit_token.call(:UNKNOWN_CHAR) end
|
933
936
|
end
|
934
937
|
end
|
935
|
-
# line
|
938
|
+
# line 939 "lib/graphql/language/lexer.rb"
|
936
939
|
end # action switch
|
937
940
|
end
|
938
941
|
end
|
@@ -952,7 +955,7 @@ when 0 then
|
|
952
955
|
# line 1 "NONE"
|
953
956
|
begin
|
954
957
|
ts = nil; end
|
955
|
-
# line
|
958
|
+
# line 959 "lib/graphql/language/lexer.rb"
|
956
959
|
end # to state action switch
|
957
960
|
end
|
958
961
|
if _trigger_goto
|
@@ -979,7 +982,7 @@ end
|
|
979
982
|
end
|
980
983
|
end
|
981
984
|
|
982
|
-
# line
|
985
|
+
# line 141 "lib/graphql/language/lexer.rl"
|
983
986
|
|
984
987
|
meta[:tokens]
|
985
988
|
end
|
@@ -990,10 +993,10 @@ end
|
|
990
993
|
value: meta[:data][ts...te].pack("c*"),
|
991
994
|
line: meta[:line],
|
992
995
|
col: meta[:col],
|
993
|
-
prev_token:
|
996
|
+
prev_token: meta[:previous_token],
|
994
997
|
)
|
995
998
|
|
996
|
-
|
999
|
+
meta[:previous_token] = token
|
997
1000
|
|
998
1001
|
meta[:col] += te - ts
|
999
1002
|
end
|
@@ -1004,9 +1007,9 @@ end
|
|
1004
1007
|
value: meta[:data][ts...te].pack("c*"),
|
1005
1008
|
line: meta[:line],
|
1006
1009
|
col: meta[:col],
|
1007
|
-
prev_token:
|
1010
|
+
prev_token: meta[:previous_token],
|
1008
1011
|
)
|
1009
|
-
|
1012
|
+
meta[:previous_token] = token
|
1010
1013
|
# Bump the column counter for the next token
|
1011
1014
|
meta[:col] += te - ts
|
1012
1015
|
end
|
@@ -1034,7 +1037,7 @@ end
|
|
1034
1037
|
value: value,
|
1035
1038
|
line: meta[:line],
|
1036
1039
|
col: meta[:col],
|
1037
|
-
prev_token:
|
1040
|
+
prev_token: meta[:previous_token],
|
1038
1041
|
)
|
1039
1042
|
else
|
1040
1043
|
replace_escaped_characters_in_place(value)
|
@@ -1044,11 +1047,11 @@ end
|
|
1044
1047
|
value: value,
|
1045
1048
|
line: meta[:line],
|
1046
1049
|
col: meta[:col],
|
1047
|
-
prev_token:
|
1050
|
+
prev_token: meta[:previous_token],
|
1048
1051
|
)
|
1049
1052
|
end
|
1050
1053
|
|
1051
|
-
|
1054
|
+
meta[:previous_token] = token
|
1052
1055
|
meta[:col] += te - ts
|
1053
1056
|
end
|
1054
1057
|
end
|
@@ -121,11 +121,14 @@ module GraphQL
|
|
121
121
|
data = query_string.unpack("c*")
|
122
122
|
eof = data.length
|
123
123
|
|
124
|
+
# Since `Lexer` is a module, store all lexer state
|
125
|
+
# in this local variable:
|
124
126
|
meta = {
|
125
127
|
line: 1,
|
126
128
|
col: 1,
|
127
129
|
data: data,
|
128
|
-
tokens: []
|
130
|
+
tokens: [],
|
131
|
+
previous_token: nil,
|
129
132
|
}
|
130
133
|
|
131
134
|
%% write init;
|
@@ -145,10 +148,10 @@ module GraphQL
|
|
145
148
|
value: meta[:data][ts...te].pack("c*"),
|
146
149
|
line: meta[:line],
|
147
150
|
col: meta[:col],
|
148
|
-
prev_token:
|
151
|
+
prev_token: meta[:previous_token],
|
149
152
|
)
|
150
153
|
|
151
|
-
|
154
|
+
meta[:previous_token] = token
|
152
155
|
|
153
156
|
meta[:col] += te - ts
|
154
157
|
end
|
@@ -159,9 +162,9 @@ module GraphQL
|
|
159
162
|
value: meta[:data][ts...te].pack("c*"),
|
160
163
|
line: meta[:line],
|
161
164
|
col: meta[:col],
|
162
|
-
prev_token:
|
165
|
+
prev_token: meta[:previous_token],
|
163
166
|
)
|
164
|
-
|
167
|
+
meta[:previous_token] = token
|
165
168
|
# Bump the column counter for the next token
|
166
169
|
meta[:col] += te - ts
|
167
170
|
end
|
@@ -189,7 +192,7 @@ module GraphQL
|
|
189
192
|
value: value,
|
190
193
|
line: meta[:line],
|
191
194
|
col: meta[:col],
|
192
|
-
prev_token:
|
195
|
+
prev_token: meta[:previous_token],
|
193
196
|
)
|
194
197
|
else
|
195
198
|
replace_escaped_characters_in_place(value)
|
@@ -199,11 +202,11 @@ module GraphQL
|
|
199
202
|
value: value,
|
200
203
|
line: meta[:line],
|
201
204
|
col: meta[:col],
|
202
|
-
prev_token:
|
205
|
+
prev_token: meta[:previous_token],
|
203
206
|
)
|
204
207
|
end
|
205
208
|
|
206
|
-
|
209
|
+
meta[:previous_token] = token
|
207
210
|
meta[:col] += te - ts
|
208
211
|
end
|
209
212
|
end
|
@@ -60,14 +60,15 @@ module GraphQL
|
|
60
60
|
NULL_ARGUMENT_VALUE = ArgumentValue.new(nil, nil, nil)
|
61
61
|
|
62
62
|
def wrap_value(value, arg_defn_type)
|
63
|
-
case
|
64
|
-
when
|
63
|
+
case arg_defn_type
|
64
|
+
when GraphQL::ListType
|
65
65
|
value.map { |item| wrap_value(item, arg_defn_type.of_type) }
|
66
|
-
when
|
67
|
-
|
66
|
+
when GraphQL::NonNullType
|
67
|
+
wrap_value(value, arg_defn_type.of_type)
|
68
|
+
when GraphQL::InputObjectType
|
69
|
+
if value.is_a?(Hash)
|
68
70
|
self.class.new(value, argument_definitions: arg_defn_type.arguments)
|
69
71
|
else
|
70
|
-
# It may be a custom scalar that coerces to a Hash
|
71
72
|
value
|
72
73
|
end
|
73
74
|
else
|
data/lib/graphql/version.rb
CHANGED
@@ -36,6 +36,36 @@ describe GraphQL::EnumType do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe "values that are Arrays" do
|
40
|
+
let(:schema) {
|
41
|
+
enum = GraphQL::EnumType.define do
|
42
|
+
name "PluralEnum"
|
43
|
+
value 'PETS', value: ["dogs", "cats"]
|
44
|
+
value 'FRUITS', value: ["apples", "oranges"]
|
45
|
+
value 'PLANETS', value: ["Earth"]
|
46
|
+
end
|
47
|
+
|
48
|
+
query_type = GraphQL::ObjectType.define do
|
49
|
+
name "Query"
|
50
|
+
field :names, types[types.String] do
|
51
|
+
argument :things, types[enum]
|
52
|
+
resolve ->(o, a, c) {
|
53
|
+
a[:things].reduce(&:+)
|
54
|
+
}
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
GraphQL::Schema.define do
|
59
|
+
query(query_type)
|
60
|
+
end
|
61
|
+
}
|
62
|
+
|
63
|
+
it "accepts them as inputs" do
|
64
|
+
res = schema.execute("{ names(things: [PETS, PLANETS]) }")
|
65
|
+
assert_equal ["dogs", "cats", "Earth"], res["data"]["names"]
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
39
69
|
it "has value description" do
|
40
70
|
assert_equal("Animal with horns", enum.values["GOAT"].description)
|
41
71
|
end
|
@@ -18,5 +18,11 @@ describe GraphQL::Language::Lexer do
|
|
18
18
|
it "keeps track of previous_token" do
|
19
19
|
assert_equal tokens[0], tokens[1].prev_token
|
20
20
|
end
|
21
|
+
|
22
|
+
it "clears the previous_token between runs" do
|
23
|
+
tok_1 = subject.tokenize(query_string)
|
24
|
+
tok_2 = subject.tokenize(query_string)
|
25
|
+
assert_equal nil, tok_2[0].prev_token
|
26
|
+
end
|
21
27
|
end
|
22
28
|
end
|
@@ -90,8 +90,8 @@ describe GraphQL::Query::Arguments do
|
|
90
90
|
{a: 1, b: {a: 2}, c: {a: 3}},
|
91
91
|
argument_definitions: input_type.arguments
|
92
92
|
)
|
93
|
-
|
94
|
-
|
93
|
+
assert_instance_of GraphQL::Query::Arguments, args["b"]
|
94
|
+
assert_instance_of Hash, args["c"]
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
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.2.
|
4
|
+
version: 1.2.3
|
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-11-
|
11
|
+
date: 2016-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: codeclimate-test-reporter
|