graphql-client 0.11.3 → 0.12.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/README.md +1 -1
- data/lib/graphql/client.rb +18 -1
- data/lib/graphql/client/response.rb +8 -1
- data/lib/graphql/client/view_module.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa036bb50b5ab41d9e3d73053cf1d37141797885
|
4
|
+
data.tar.gz: 41635ac628917be0f1babb56436aab27eb89fbf3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71597a7fb1ab438970d8bf4e16041c8150d58a42860a89b077bb56d361e901bb935bd54efebc4549ac3fa82f6217993dbe00ed24e0d97d5442bd6b50a5918ede
|
7
|
+
data.tar.gz: 19ff47eef9b1b5dae74f28cb246b080f7098b8a7d5d45a3322ed2c9c0c34012b7c5d3e74d3f215cc786f13fb206e43af0258f805b05fadf41e8b65b822a4216b
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ module SWAPI
|
|
20
20
|
# Fetch latest schema on init, this will make a network request
|
21
21
|
Schema = GraphQL::Client.load_schema(HTTP)
|
22
22
|
|
23
|
-
# However,
|
23
|
+
# However, it's smart to dump this to a JSON file and load from disk
|
24
24
|
#
|
25
25
|
# Run it from a script or rake task
|
26
26
|
# GraphQL::Client.dump_schema(SWAPI::HTTP, "path/to/schema.json")
|
data/lib/graphql/client.rb
CHANGED
@@ -114,7 +114,7 @@ module GraphQL
|
|
114
114
|
|
115
115
|
definition_dependencies = Set.new
|
116
116
|
|
117
|
-
str = str.gsub(/\.\.\.([a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)*)
|
117
|
+
str = str.gsub(/\.\.\.([a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)*)$/) do
|
118
118
|
match = Regexp.last_match
|
119
119
|
const_name = match[1]
|
120
120
|
|
@@ -317,9 +317,12 @@ module GraphQL
|
|
317
317
|
)
|
318
318
|
end
|
319
319
|
|
320
|
+
deep_freeze_json_object(result)
|
321
|
+
|
320
322
|
data, errors, extensions = result.values_at("data", "errors", "extensions")
|
321
323
|
|
322
324
|
errors ||= []
|
325
|
+
errors = errors.map(&:dup)
|
323
326
|
GraphQL::Client::Errors.normalize_error_paths(data, errors)
|
324
327
|
|
325
328
|
errors.each do |error|
|
@@ -328,6 +331,7 @@ module GraphQL
|
|
328
331
|
end
|
329
332
|
|
330
333
|
Response.new(
|
334
|
+
result,
|
331
335
|
data: definition.new(data, Errors.new(errors, ["data"])),
|
332
336
|
errors: Errors.new(errors),
|
333
337
|
extensions: extensions
|
@@ -344,6 +348,19 @@ module GraphQL
|
|
344
348
|
|
345
349
|
private
|
346
350
|
|
351
|
+
def deep_freeze_json_object(obj)
|
352
|
+
case obj
|
353
|
+
when String
|
354
|
+
obj.freeze
|
355
|
+
when Array
|
356
|
+
obj.each { |v| deep_freeze_json_object(v) }
|
357
|
+
obj.freeze
|
358
|
+
when Hash
|
359
|
+
obj.each { |k, v| k.freeze; deep_freeze_json_object(v) }
|
360
|
+
obj.freeze
|
361
|
+
end
|
362
|
+
end
|
363
|
+
|
347
364
|
def deep_stringify_keys(obj)
|
348
365
|
case obj
|
349
366
|
when Hash
|
@@ -7,6 +7,12 @@ module GraphQL
|
|
7
7
|
#
|
8
8
|
# https://facebook.github.io/graphql/#sec-Response-Format
|
9
9
|
class Response
|
10
|
+
# Public: Original JSON response hash returned from server.
|
11
|
+
#
|
12
|
+
# Returns Hash.
|
13
|
+
attr_reader :original_hash
|
14
|
+
alias_method :to_h, :original_hash
|
15
|
+
|
10
16
|
# Public: Wrapped ObjectType of data returned from the server.
|
11
17
|
#
|
12
18
|
# https://facebook.github.io/graphql/#sec-Data
|
@@ -25,7 +31,8 @@ module GraphQL
|
|
25
31
|
attr_reader :extensions
|
26
32
|
|
27
33
|
# Internal: Initialize base class.
|
28
|
-
def initialize(data: nil, errors: Errors.new, extensions: {})
|
34
|
+
def initialize(hash, data: nil, errors: Errors.new, extensions: {})
|
35
|
+
@original_hash = hash
|
29
36
|
@data = data
|
30
37
|
@errors = errors
|
31
38
|
@extensions = extensions
|
@@ -46,7 +46,7 @@ module GraphQL
|
|
46
46
|
def eager_load!
|
47
47
|
return unless File.directory?(load_path)
|
48
48
|
|
49
|
-
Dir.entries(load_path).each do |entry|
|
49
|
+
Dir.entries(load_path).sort.each do |entry|
|
50
50
|
next if entry == "." || entry == ".."
|
51
51
|
name = entry.sub(/(\.\w+)+$/, "").camelize.to_sym
|
52
52
|
if ViewModule.valid_constant_name?(name)
|
@@ -97,7 +97,7 @@ module GraphQL
|
|
97
97
|
# Returns new Module implementing Loadable concern.
|
98
98
|
def load_module(name)
|
99
99
|
pathname = ActiveSupport::Inflector.underscore(name.to_s)
|
100
|
-
path = Dir[File.join(load_path, "{#{pathname},_#{pathname}}{.*}")].map { |fn| File.expand_path(fn) }.first
|
100
|
+
path = Dir[File.join(load_path, "{#{pathname},_#{pathname}}{.*}")].sort.map { |fn| File.expand_path(fn) }.first
|
101
101
|
|
102
102
|
return if !path || File.extname(path) != ".erb"
|
103
103
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphql-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -36,14 +36,14 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '1.
|
39
|
+
version: '1.6'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '1.
|
46
|
+
version: '1.6'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: actionpack
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|