graphql-fragment_cache 0.1.2 → 0.1.3

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 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