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: ffa22ed6490a1efa77f81da6e01cdd20571c3aaa98519a57a5a044f2b59705ee
4
- data.tar.gz: 706e6f986c677db40e405cc8b01896455053393e65fb379526e0badec98064b3
3
+ metadata.gz: da4850c60d1cba6fda41b4bba97680063b53ed9c7b8bf3e5727697891dce3908
4
+ data.tar.gz: a1388572f4941b2db7090732b1e6548eed19cf364e8e67e92298e08b36a78ecf
5
5
  SHA512:
6
- metadata.gz: c9084bf776fcc30b7abd1cac05faf292cba75cf176a85844b2d9b1f40c66bec92758b1a0001d9369b24de4d11712be686381a7ee2ed54f90eb5a52ac9c0e2b4b
7
- data.tar.gz: f81a77a2da2c8a8aab192f19947d3f483ff89fe9e4575a319b8324e6a2ac3ed12499d1ca51852ca95137d363452f33ca7241482698cfa4e84ad7bcb11dfcfc32
6
+ metadata.gz: 64b1d740c5fb423fd8d3118e57cbf45021415fd4907b3e3539dd1970545e265a7dabefba08e1d8611fd5827e8364398da699c4f3a2aceeea46bd0bab6ac7edca
7
+ data.tar.gz: a1d8f8b808d1609cc97dc4ac83b5975e6c631b3fc6b41e68cbd49dc9469ee41139c24c370aa93908d79351d148f050c99b67a80452e31d9761812f52f2e4911c
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GraphQL
4
4
  module FragmentCache
5
- VERSION = "0.1.2"
5
+ VERSION = "0.1.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graphql-fragment_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - DmitryTsepelev