graphql 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1aafd43a1c33e73554a5e5231efd24bfdf236de
4
- data.tar.gz: f0d8e2e7225fce433a02976d7b61195afea4c573
3
+ metadata.gz: 280ed673cf1dbbf668aa99c14d43ab9ac9b97af8
4
+ data.tar.gz: c2b66a6c3bcad312b56bdf565dfd39475e0f627d
5
5
  SHA512:
6
- metadata.gz: 7fd15c75d9467dd23867d281dae3f932f64351a1a18d0010c85ca8c74297e0368e33dc15d3f6265937a09fe4339aadfa387f87e466137d265583577d951bedbc
7
- data.tar.gz: 39b48cbccf44d3c0c02226d7329dacef7045f5a8acea12cebe56f6ad2ce9fe6b4f0b318bd45699e7965884dbc935df015bb71abdcd65d964af211eca21718344
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 511 "lib/graphql/language/lexer.rb"
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 132 "lib/graphql/language/lexer.rl"
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 528 "lib/graphql/language/lexer.rb"
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 558 "lib/graphql/language/lexer.rb"
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 936 "lib/graphql/language/lexer.rb"
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 956 "lib/graphql/language/lexer.rb"
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 138 "lib/graphql/language/lexer.rl"
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: @previous_token,
996
+ prev_token: meta[:previous_token],
994
997
  )
995
998
 
996
- @previous_token = token
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: @previous_token,
1010
+ prev_token: meta[:previous_token],
1008
1011
  )
1009
- @previous_token = token
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: @previous_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: @previous_token,
1050
+ prev_token: meta[:previous_token],
1048
1051
  )
1049
1052
  end
1050
1053
 
1051
- @previous_token = token
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: @previous_token,
151
+ prev_token: meta[:previous_token],
149
152
  )
150
153
 
151
- @previous_token = token
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: @previous_token,
165
+ prev_token: meta[:previous_token],
163
166
  )
164
- @previous_token = token
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: @previous_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: @previous_token,
205
+ prev_token: meta[:previous_token],
203
206
  )
204
207
  end
205
208
 
206
- @previous_token = token
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 value
64
- when Array
63
+ case arg_defn_type
64
+ when GraphQL::ListType
65
65
  value.map { |item| wrap_value(item, arg_defn_type.of_type) }
66
- when Hash
67
- if arg_defn_type.unwrap.kind.input_object?
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
@@ -1,3 +1,3 @@
1
1
  module GraphQL
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
@@ -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
- assert args["b"].is_a?(GraphQL::Query::Arguments)
94
- assert args["c"].is_a?(Hash)
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.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-09 00:00:00.000000000 Z
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