gqli 0.6.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +17 -0
  4. data/Gemfile.lock +103 -82
  5. data/README.md +0 -5
  6. data/coverage/.last_run.json +1 -1
  7. data/coverage/.resultset.json +1774 -1205
  8. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
  9. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
  10. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
  11. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
  12. data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
  13. data/coverage/assets/0.12.3/application.css +1 -0
  14. data/coverage/assets/0.12.3/application.js +7 -0
  15. data/coverage/assets/{0.10.2 → 0.12.3}/colorbox/border.png +0 -0
  16. data/coverage/assets/{0.10.2 → 0.12.3}/colorbox/controls.png +0 -0
  17. data/coverage/assets/{0.10.2 → 0.12.3}/colorbox/loading.gif +0 -0
  18. data/coverage/assets/{0.10.2 → 0.12.3}/colorbox/loading_background.png +0 -0
  19. data/coverage/assets/{0.10.2 → 0.12.3}/favicon_green.png +0 -0
  20. data/coverage/assets/{0.10.2 → 0.12.3}/favicon_red.png +0 -0
  21. data/coverage/assets/{0.10.2 → 0.12.3}/favicon_yellow.png +0 -0
  22. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  23. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  24. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  25. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  26. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  27. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  28. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  29. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  30. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-icons_222222_256x240.png +0 -0
  31. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-icons_2e83ff_256x240.png +0 -0
  32. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-icons_454545_256x240.png +0 -0
  33. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-icons_888888_256x240.png +0 -0
  34. data/coverage/assets/{0.10.2/smoothness → 0.12.3}/images/ui-icons_cd0a0a_256x240.png +0 -0
  35. data/coverage/assets/{0.10.2 → 0.12.3}/loading.gif +0 -0
  36. data/coverage/assets/{0.10.2 → 0.12.3}/magnify.png +0 -0
  37. data/coverage/index.html +19376 -7403
  38. data/doc/GQLi/Base.html +11 -11
  39. data/doc/GQLi/Client.html +175 -41
  40. data/doc/GQLi/Contentful.html +13 -11
  41. data/doc/GQLi/DSL.html +298 -30
  42. data/doc/GQLi/EnumValue.html +8 -8
  43. data/doc/GQLi/Fragment.html +8 -8
  44. data/doc/GQLi/Github.html +6 -6
  45. data/doc/GQLi/Introspection.html +46 -48
  46. data/doc/GQLi/Mutation.html +390 -0
  47. data/doc/GQLi/Node.html +8 -8
  48. data/doc/GQLi/Query.html +6 -6
  49. data/doc/GQLi/Response.html +87 -13
  50. data/doc/GQLi/Subscription.html +390 -0
  51. data/doc/GQLi/Validation.html +20 -20
  52. data/doc/GQLi.html +9 -9
  53. data/doc/_index.html +37 -7
  54. data/doc/class_list.html +3 -3
  55. data/doc/css/style.css +3 -2
  56. data/doc/file.CHANGELOG.html +43 -13
  57. data/doc/file.LICENSE.html +6 -6
  58. data/doc/file.README.html +31 -84
  59. data/doc/file_list.html +2 -2
  60. data/doc/frames.html +2 -2
  61. data/doc/index.html +31 -84
  62. data/doc/js/app.js +25 -3
  63. data/doc/method_list.html +147 -43
  64. data/doc/top-level-namespace.html +6 -6
  65. data/gqli.gemspec +5 -6
  66. data/lib/gqli/client.rb +25 -5
  67. data/lib/gqli/clients/contentful.rb +3 -2
  68. data/lib/gqli/dsl.rb +16 -1
  69. data/lib/gqli/introspection.rb +1 -3
  70. data/lib/gqli/mutation.rb +27 -0
  71. data/lib/gqli/response.rb +15 -2
  72. data/lib/gqli/subscription.rb +1 -1
  73. data/lib/gqli/validation.rb +15 -12
  74. data/lib/gqli/version.rb +1 -1
  75. data/spec/fixtures/vcr_cassettes/client.yml +98 -27
  76. data/spec/fixtures/vcr_cassettes/mutation_client.yml +4364 -0
  77. data/spec/lib/gqli/client_spec.rb +53 -0
  78. data/spec/lib/gqli/dsl_spec.rb +72 -2
  79. data/spec/lib/gqli/introspection_spec.rb +54 -0
  80. data/spec/lib/gqli/response_spec.rb +51 -0
  81. metadata +64 -73
  82. data/coverage/assets/0.10.2/application.css +0 -799
  83. data/coverage/assets/0.10.2/application.js +0 -1707
@@ -3,6 +3,8 @@ require 'spec_helper'
3
3
  describe GQLi::Client do
4
4
  let(:space_id) { 'cfexampleapi' }
5
5
  let(:token) { 'b4c0n73n7fu1' }
6
+ let(:default_timeout) { 60 }
7
+ let(:timeout) { 10 }
6
8
 
7
9
  let(:client) do
8
10
  vcr('client') {
@@ -20,6 +22,21 @@ describe GQLi::Client do
20
22
  }
21
23
  end
22
24
 
25
+ let(:client_with_timeout) do
26
+ vcr('client') {
27
+ GQLi::Contentful.create(
28
+ space_id,
29
+ token,
30
+ validate_query: false,
31
+ options: {
32
+ connect_timeout: timeout,
33
+ read_timeout: timeout,
34
+ write_timeout: timeout
35
+ }
36
+ )
37
+ }
38
+ end
39
+
23
40
  let(:dsl) { GQLi::DSL }
24
41
 
25
42
  describe 'default clients' do
@@ -118,4 +135,40 @@ describe GQLi::Client do
118
135
  }
119
136
  end
120
137
  end
138
+
139
+ context 'without timeout options' do
140
+ subject { client }
141
+
142
+ it 'upon instantiation sets default timeout value' do
143
+ expect(subject.options[:read_timeout]).to eq(default_timeout)
144
+ expect(subject.options[:connect_timeout]).to eq(default_timeout)
145
+ expect(subject.options[:write_timeout]).to eq(default_timeout)
146
+ end
147
+
148
+ it 'when executing a request sets default timeout value' do
149
+ expect(subject.request.default_options.timeout_options[:read_timeout]).to eq(default_timeout)
150
+ expect(subject.request.default_options.timeout_options[:connect_timeout]).to eq(default_timeout)
151
+ expect(subject.request.default_options.timeout_options[:write_timeout]).to eq(default_timeout)
152
+ end
153
+ end
154
+
155
+ context 'with timeout options' do
156
+ subject { client_with_timeout }
157
+
158
+ it 'contentful client' do
159
+ expect(subject).to be_a(GQLi::Client)
160
+ end
161
+
162
+ it 'upon instantiation sets provided timeout value' do
163
+ expect(subject.options[:read_timeout]).to eq(timeout)
164
+ expect(subject.options[:connect_timeout]).to eq(timeout)
165
+ expect(subject.options[:write_timeout]).to eq(timeout)
166
+ end
167
+
168
+ it 'when executing a request sets provided timeout value' do
169
+ expect(subject.request.default_options.timeout_options[:read_timeout]).to eq(timeout)
170
+ expect(subject.request.default_options.timeout_options[:connect_timeout]).to eq(timeout)
171
+ expect(subject.request.default_options.timeout_options[:write_timeout]).to eq(timeout)
172
+ end
173
+ end
121
174
  end
@@ -37,6 +37,43 @@ describe GQLi::DSL do
37
37
  end
38
38
  end
39
39
 
40
+ describe '::mutation' do
41
+ it 'can create a mutation without name' do
42
+ mutation = subject.mutation {
43
+ addFoo(name: 'bar') {
44
+ name
45
+ }
46
+ }
47
+
48
+ expect(mutation).to be_a GQLi::Mutation
49
+ expect(mutation.to_gql).to eq <<~GRAPHQL
50
+ mutation {
51
+ addFoo(name: "bar") {
52
+ name
53
+ }
54
+ }
55
+ GRAPHQL
56
+ expect(mutation.to_gql).to eq mutation.to_s
57
+ end
58
+
59
+ it 'can create a query with a name' do
60
+ mutation = subject.mutation('AddFoo') {
61
+ addFoo(name: 'bar') {
62
+ name
63
+ }
64
+ }
65
+
66
+ expect(mutation).to be_a GQLi::Mutation
67
+ expect(mutation.to_gql).to eq <<~GRAPHQL
68
+ mutation AddFoo {
69
+ addFoo(name: "bar") {
70
+ name
71
+ }
72
+ }
73
+ GRAPHQL
74
+ end
75
+ end
76
+
40
77
  describe '::subscription' do
41
78
  it 'can create a subscription without name' do
42
79
  subscription = subject.subscription {
@@ -122,11 +159,44 @@ describe GQLi::DSL do
122
159
  end
123
160
  end
124
161
 
162
+ describe '#mutation does the same as ::mutation' do
163
+ it 'can create a mutation without name' do
164
+ mutation = subject.mutation {
165
+ addFoo(name: 'bar') {
166
+ name
167
+ }
168
+ }
125
169
 
126
- describe '#subscription does the same as ::subscription' do
170
+ expect(mutation).to be_a GQLi::Mutation
171
+ expect(mutation.to_gql).to eq <<~GRAPHQL
172
+ mutation {
173
+ addFoo(name: "bar") {
174
+ name
175
+ }
176
+ }
177
+ GRAPHQL
178
+ expect(mutation.to_gql).to eq mutation.to_s
179
+ end
127
180
 
128
- subject { MockGQLInterface.new }
181
+ it 'can create a query with a name' do
182
+ mutation = subject.mutation('AddFoo') {
183
+ addFoo(name: 'bar') {
184
+ name
185
+ }
186
+ }
187
+
188
+ expect(mutation).to be_a GQLi::Mutation
189
+ expect(mutation.to_gql).to eq <<~GRAPHQL
190
+ mutation AddFoo {
191
+ addFoo(name: "bar") {
192
+ name
193
+ }
194
+ }
195
+ GRAPHQL
196
+ end
197
+ end
129
198
 
199
+ describe '#subscription does the same as ::subscription' do
130
200
  it 'can create a subscription without name' do
131
201
  subscription = subject.subscription {
132
202
  someField
@@ -322,5 +322,59 @@ describe GQLi::Introspection do
322
322
  expect(validation.errors.map(&:to_s)).to include("Invalid argument 'else' for directive '@include'")
323
323
  end
324
324
  end
325
+
326
+ describe 'mutations' do
327
+ let(:client) {
328
+ vcr('mutation_client') {
329
+ GQLi::Github.create(ENV.fetch('GITHUB_READ_ONLY', '<ACCESS_TOKEN>'))
330
+ }
331
+ }
332
+
333
+ it 'fails for unknown mutation' do
334
+ mutation = dsl.mutation {
335
+ foo(bar: 'baz') {
336
+ bar
337
+ }
338
+ }
339
+
340
+ validation = subject.validate(mutation)
341
+ expect(validation.valid?).to be_falsey
342
+ expect(validation.errors).not_to be_empty
343
+ expect(validation.errors.map(&:to_s)).to include("Node type not found for 'foo'")
344
+ end
345
+
346
+ it 'fails for unknown arguments' do
347
+ mutation = dsl.mutation {
348
+ addComment(foo: 'bar') {
349
+ subject {
350
+ id
351
+ }
352
+ }
353
+ }
354
+
355
+ validation = subject.validate(mutation)
356
+ expect(validation.valid?).to be_falsey
357
+ expect(validation.errors).not_to be_empty
358
+ expect(validation.errors.map(&:to_s)).to include("Invalid argument 'foo'")
359
+ end
360
+
361
+ it 'true for valid mutation' do
362
+ mutation = dsl.mutation {
363
+ addComment(input: {
364
+ subjectId: 'some subject id',
365
+ body: 'some subject',
366
+ clientMutationId: 'some identifier'
367
+ }) {
368
+ subject {
369
+ id
370
+ }
371
+ }
372
+ }
373
+
374
+ validation = subject.validate(mutation)
375
+ expect(validation.valid?).to be_truthy
376
+ expect(validation.errors).to be_empty
377
+ end
378
+ end
325
379
  end
326
380
  end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe GQLi::Response do
4
+ let(:errors) { nil }
5
+ let(:data) { {"testkey" => "test val"} }
6
+ let(:query) { double(:query) }
7
+ subject { described_class.new(data, errors, query) }
8
+
9
+ describe "#data" do
10
+ it "returns correct data Hashie" do
11
+ expect(subject.data).to be_kind_of(Hashie::Mash)
12
+ expect(subject.data.testkey).to eq(data["testkey"])
13
+ end
14
+ end
15
+
16
+ describe "#query" do
17
+ it "returns correct query" do
18
+ expect(subject.query).to eq(query)
19
+ end
20
+ end
21
+
22
+ describe "#errors" do
23
+ context "array errors" do
24
+ let(:errors) { [{"message" => "this is an error"}] }
25
+
26
+ it "converts errors to correct Hashie instances" do
27
+ expect(subject.errors).to be_kind_of(Array)
28
+ expect(subject.errors.length).to eq(1)
29
+ expect(subject.errors.first).to be_kind_of(Hashie::Mash)
30
+ expect(subject.errors.first.message).to eq(errors.first["message"])
31
+ end
32
+ end
33
+
34
+ context "hash errors" do
35
+ let(:errors) { {"message" => "this is an error"} }
36
+
37
+ it "converts errors to correct Hashie instances" do
38
+ expect(subject.errors).to be_kind_of(Hashie::Mash)
39
+ expect(subject.errors.message).to eq(errors["message"])
40
+ end
41
+ end
42
+
43
+ context "nil errors" do
44
+ it "does not raise error and returns nil" do
45
+ expect(subject.errors).to be(nil)
46
+ end
47
+ end
48
+
49
+ end
50
+
51
+ end
metadata CHANGED
@@ -1,23 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gqli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentful GmbH (David Litvak Bruno)
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-18 00:00:00.000000000 Z
11
+ date: 2022-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: http
14
+ name: hashie
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">"
18
- - !ruby/object:Gem::Version
19
- version: '0.8'
20
- - - "<"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '3.0'
23
20
  type: :runtime
@@ -25,25 +22,28 @@ dependencies:
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">"
28
- - !ruby/object:Gem::Version
29
- version: '0.8'
30
- - - "<"
31
25
  - !ruby/object:Gem::Version
32
26
  version: '3.0'
33
27
  - !ruby/object:Gem::Dependency
34
- name: hashie
28
+ name: http
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
31
+ - - ">"
38
32
  - !ruby/object:Gem::Version
39
- version: '3.0'
33
+ version: '0.8'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '6.0'
40
37
  type: :runtime
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
40
  requirements:
44
- - - "~>"
41
+ - - ">"
45
42
  - !ruby/object:Gem::Version
46
- version: '3.0'
43
+ version: '0.8'
44
+ - - "<"
45
+ - !ruby/object:Gem::Version
46
+ version: '6.0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: multi_json
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -58,34 +58,20 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1'
61
- - !ruby/object:Gem::Dependency
62
- name: bundler
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '1.5'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '1.5'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: rake
77
63
  requirement: !ruby/object:Gem::Requirement
78
64
  requirements:
79
- - - "<"
65
+ - - ">="
80
66
  - !ruby/object:Gem::Version
81
- version: '11.0'
67
+ version: '0'
82
68
  type: :development
83
69
  prerelease: false
84
70
  version_requirements: !ruby/object:Gem::Requirement
85
71
  requirements:
86
- - - "<"
72
+ - - ">="
87
73
  - !ruby/object:Gem::Version
88
- version: '11.0'
74
+ version: '0'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: rubygems-tasks
91
77
  requirement: !ruby/object:Gem::Requirement
@@ -202,16 +188,16 @@ dependencies:
202
188
  name: vcr
203
189
  requirement: !ruby/object:Gem::Requirement
204
190
  requirements:
205
- - - ">="
191
+ - - "~>"
206
192
  - !ruby/object:Gem::Version
207
- version: '0'
193
+ version: '4.0'
208
194
  type: :development
209
195
  prerelease: false
210
196
  version_requirements: !ruby/object:Gem::Requirement
211
197
  requirements:
212
- - - ">="
198
+ - - "~>"
213
199
  - !ruby/object:Gem::Version
214
- version: '0'
200
+ version: '4.0'
215
201
  - !ruby/object:Gem::Dependency
216
202
  name: simplecov
217
203
  requirement: !ruby/object:Gem::Requirement
@@ -232,20 +218,14 @@ dependencies:
232
218
  requirements:
233
219
  - - "~>"
234
220
  - !ruby/object:Gem::Version
235
- version: '1'
236
- - - ">="
237
- - !ruby/object:Gem::Version
238
- version: 1.17.3
221
+ version: '3.5'
239
222
  type: :development
240
223
  prerelease: false
241
224
  version_requirements: !ruby/object:Gem::Requirement
242
225
  requirements:
243
226
  - - "~>"
244
227
  - !ruby/object:Gem::Version
245
- version: '1'
246
- - - ">="
247
- - !ruby/object:Gem::Version
248
- version: 1.17.3
228
+ version: '3.5'
249
229
  - !ruby/object:Gem::Dependency
250
230
  name: tins
251
231
  requirement: !ruby/object:Gem::Requirement
@@ -282,30 +262,35 @@ files:
282
262
  - coverage/.last_run.json
283
263
  - coverage/.resultset.json
284
264
  - coverage/.resultset.json.lock
285
- - coverage/assets/0.10.2/application.css
286
- - coverage/assets/0.10.2/application.js
287
- - coverage/assets/0.10.2/colorbox/border.png
288
- - coverage/assets/0.10.2/colorbox/controls.png
289
- - coverage/assets/0.10.2/colorbox/loading.gif
290
- - coverage/assets/0.10.2/colorbox/loading_background.png
291
- - coverage/assets/0.10.2/favicon_green.png
292
- - coverage/assets/0.10.2/favicon_red.png
293
- - coverage/assets/0.10.2/favicon_yellow.png
294
- - coverage/assets/0.10.2/loading.gif
295
- - coverage/assets/0.10.2/magnify.png
296
- - coverage/assets/0.10.2/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
297
- - coverage/assets/0.10.2/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
298
- - coverage/assets/0.10.2/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
299
- - coverage/assets/0.10.2/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
300
- - coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_dadada_1x400.png
301
- - coverage/assets/0.10.2/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
302
- - coverage/assets/0.10.2/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
303
- - coverage/assets/0.10.2/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
304
- - coverage/assets/0.10.2/smoothness/images/ui-icons_222222_256x240.png
305
- - coverage/assets/0.10.2/smoothness/images/ui-icons_2e83ff_256x240.png
306
- - coverage/assets/0.10.2/smoothness/images/ui-icons_454545_256x240.png
307
- - coverage/assets/0.10.2/smoothness/images/ui-icons_888888_256x240.png
308
- - coverage/assets/0.10.2/smoothness/images/ui-icons_cd0a0a_256x240.png
265
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png
266
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
267
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
268
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
269
+ - coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
270
+ - coverage/assets/0.12.3/application.css
271
+ - coverage/assets/0.12.3/application.js
272
+ - coverage/assets/0.12.3/colorbox/border.png
273
+ - coverage/assets/0.12.3/colorbox/controls.png
274
+ - coverage/assets/0.12.3/colorbox/loading.gif
275
+ - coverage/assets/0.12.3/colorbox/loading_background.png
276
+ - coverage/assets/0.12.3/favicon_green.png
277
+ - coverage/assets/0.12.3/favicon_red.png
278
+ - coverage/assets/0.12.3/favicon_yellow.png
279
+ - coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
280
+ - coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
281
+ - coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
282
+ - coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
283
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
284
+ - coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
285
+ - coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
286
+ - coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
287
+ - coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
288
+ - coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
289
+ - coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
290
+ - coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
291
+ - coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
292
+ - coverage/assets/0.12.3/loading.gif
293
+ - coverage/assets/0.12.3/magnify.png
309
294
  - coverage/index.html
310
295
  - doc/GQLi.html
311
296
  - doc/GQLi/Base.html
@@ -316,9 +301,11 @@ files:
316
301
  - doc/GQLi/Fragment.html
317
302
  - doc/GQLi/Github.html
318
303
  - doc/GQLi/Introspection.html
304
+ - doc/GQLi/Mutation.html
319
305
  - doc/GQLi/Node.html
320
306
  - doc/GQLi/Query.html
321
307
  - doc/GQLi/Response.html
308
+ - doc/GQLi/Subscription.html
322
309
  - doc/GQLi/Validation.html
323
310
  - doc/_index.html
324
311
  - doc/class_list.html
@@ -347,6 +334,7 @@ files:
347
334
  - lib/gqli/enum_value.rb
348
335
  - lib/gqli/fragment.rb
349
336
  - lib/gqli/introspection.rb
337
+ - lib/gqli/mutation.rb
350
338
  - lib/gqli/node.rb
351
339
  - lib/gqli/query.rb
352
340
  - lib/gqli/response.rb
@@ -355,10 +343,12 @@ files:
355
343
  - lib/gqli/version.rb
356
344
  - spec/fixtures/vcr_cassettes/catCollection.yml
357
345
  - spec/fixtures/vcr_cassettes/client.yml
346
+ - spec/fixtures/vcr_cassettes/mutation_client.yml
358
347
  - spec/fixtures/vcr_cassettes/validation_error.yml
359
348
  - spec/lib/gqli/client_spec.rb
360
349
  - spec/lib/gqli/dsl_spec.rb
361
350
  - spec/lib/gqli/introspection_spec.rb
351
+ - spec/lib/gqli/response_spec.rb
362
352
  - spec/spec_helper.rb
363
353
  - usage.rb
364
354
  - usage_introspection.rb
@@ -367,7 +357,7 @@ homepage: https://github.com/contentful-labs/gqli.rb
367
357
  licenses:
368
358
  - MIT
369
359
  metadata: {}
370
- post_install_message:
360
+ post_install_message:
371
361
  rdoc_options: []
372
362
  require_paths:
373
363
  - lib
@@ -382,16 +372,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
382
372
  - !ruby/object:Gem::Version
383
373
  version: '0'
384
374
  requirements: []
385
- rubyforge_project:
386
- rubygems_version: 2.7.8
387
- signing_key:
375
+ rubygems_version: 3.2.32
376
+ signing_key:
388
377
  specification_version: 4
389
378
  summary: GraphQL client for humans
390
379
  test_files:
391
380
  - spec/fixtures/vcr_cassettes/catCollection.yml
392
381
  - spec/fixtures/vcr_cassettes/client.yml
382
+ - spec/fixtures/vcr_cassettes/mutation_client.yml
393
383
  - spec/fixtures/vcr_cassettes/validation_error.yml
394
384
  - spec/lib/gqli/client_spec.rb
395
385
  - spec/lib/gqli/dsl_spec.rb
396
386
  - spec/lib/gqli/introspection_spec.rb
387
+ - spec/lib/gqli/response_spec.rb
397
388
  - spec/spec_helper.rb