graphql-fragment_cache 0.1.2 → 0.1.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da4850c60d1cba6fda41b4bba97680063b53ed9c7b8bf3e5727697891dce3908
|
4
|
+
data.tar.gz: a1388572f4941b2db7090732b1e6548eed19cf364e8e67e92298e08b36a78ecf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64b1d740c5fb423fd8d3118e57cbf45021415fd4907b3e3539dd1970545e265a7dabefba08e1d8611fd5827e8364398da699c4f3a2aceeea46bd0bab6ac7edca
|
7
|
+
data.tar.gz: a1d8f8b808d1609cc97dc4ac83b5975e6c631b3fc6b41e68cbd49dc9469ee41139c24c370aa93908d79351d148f050c99b67a80452e31d9761812f52f2e4911c
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## 0.1.3 (2020-04-24)
|
6
|
+
|
7
|
+
- [PR#17](https://github.com/DmitryTsepelev/graphql-ruby-fragment_cache/pull/17) Properly build cache keys based on input arguments ([@DmitryTsepelev][])
|
8
|
+
|
5
9
|
## 0.1.2 (2020-04-24)
|
6
10
|
|
7
11
|
- [PR#16](https://github.com/DmitryTsepelev/graphql-ruby-fragment_cache/pull/16) Railtie turns off caching in test environment ([@DmitryTsepelev][])
|
@@ -72,11 +72,17 @@ module GraphQL
|
|
72
72
|
|
73
73
|
next field_name if lookahead.arguments.empty?
|
74
74
|
|
75
|
-
args = lookahead.arguments.map { |_1, _2| "#{_1}:#{_2}" }.sort.join(",")
|
75
|
+
args = lookahead.arguments.map { |_1, _2| "#{_1}:#{traverse_argument(_2)}" }.sort.join(",")
|
76
76
|
"#{field_name}(#{args})"
|
77
77
|
}.join("/")
|
78
78
|
end
|
79
79
|
|
80
|
+
def traverse_argument(argument)
|
81
|
+
return argument unless argument.is_a?(GraphQL::Schema::InputObject)
|
82
|
+
|
83
|
+
"{#{argument.map { |_1, _2| "#{_1}:#{traverse_argument(_2)}" }.sort.join(",")}}"
|
84
|
+
end
|
85
|
+
|
80
86
|
def object_key(obj)
|
81
87
|
obj._graphql_cache_key
|
82
88
|
end
|
@@ -12,7 +12,6 @@ require "graphql/fragment_cache/instrumentation"
|
|
12
12
|
require "graphql/fragment_cache/memory_store"
|
13
13
|
|
14
14
|
require "graphql/fragment_cache/version"
|
15
|
-
require "graphql/fragment_cache/railtie" if defined?(Rails::Railtie)
|
16
15
|
|
17
16
|
module GraphQL
|
18
17
|
# Plugin definition
|
@@ -57,3 +56,5 @@ module GraphQL
|
|
57
56
|
self.cache_store = MemoryStore.new
|
58
57
|
end
|
59
58
|
end
|
59
|
+
|
60
|
+
require "graphql/fragment_cache/railtie" if defined?(Rails::Railtie)
|
@@ -72,11 +72,17 @@ module GraphQL
|
|
72
72
|
|
73
73
|
next field_name if lookahead.arguments.empty?
|
74
74
|
|
75
|
-
args = lookahead.arguments.map { "#{_1}:#{_2}" }.sort.join(",")
|
75
|
+
args = lookahead.arguments.map { "#{_1}:#{traverse_argument(_2)}" }.sort.join(",")
|
76
76
|
"#{field_name}(#{args})"
|
77
77
|
}.join("/")
|
78
78
|
end
|
79
79
|
|
80
|
+
def traverse_argument(argument)
|
81
|
+
return argument unless argument.is_a?(GraphQL::Schema::InputObject)
|
82
|
+
|
83
|
+
"{#{argument.map { "#{_1}:#{traverse_argument(_2)}" }.sort.join(",")}}"
|
84
|
+
end
|
85
|
+
|
80
86
|
def object_key(obj)
|
81
87
|
obj._graphql_cache_key
|
82
88
|
end
|