legion-cache 1.3.2 → 1.3.4

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: '0295f21258e4a7d824099be9c2c12a7c594d0db3e72dd8d5b5f823bb332e6869'
4
- data.tar.gz: 5e581fc50c7bb13e52e9a38ae99a085af836ae21ec6d126d3a0d1fc6c79ad5aa
3
+ metadata.gz: c04121f4d10bcc0076e189557b0036d02237fb97fd8bfa9c67779df4298d2e41
4
+ data.tar.gz: faaf6c6c82212257a9e99866948f57269147e0b942301893d100e580cd47e743
5
5
  SHA512:
6
- metadata.gz: dc08f391040cab62c39795bd1d477f7d8e47ba4b5ffe3e88856957b829876d37ae06e15a48ff5469652e3c3574d5da529bccb7f00e9df162caadcc4d50fd93e1
7
- data.tar.gz: 67717d9fd58c0669e319f0b0de94dee0d8178f17d78ba3fac2afc142660e26668b6700ccbb370b88274f1295d7ab534627768f981f3e1c4f98f9aa5ac86ae3db
6
+ metadata.gz: ee4dfdf2ac8827b26ebfe5048450b951573fdc8e548b7016f33ed1f3caf2aa6ca56310aa5107942d7b5a388644b3a881c0e8ecee5a9440ef51a79308ab9b79f7
7
+ data.tar.gz: 185e0503c8bfbfcd839031ffe1d8300e4f3e4d475e627841d1ca9ae5cd9965566fcf5006da522fd29d65bf7e079fd372562aefae528e7db0f892e4f1738aa48c
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.3] - 2026-03-20
4
+
5
+ ### Fixed
6
+ - Serializer option (`Legion::JSON`) now correctly flows through to `Dalli::Client.new`, preventing Dalli from falling back to Marshal and emitting a security warning
7
+
3
8
  ## [1.3.2] - 2026-03-20
4
9
 
5
10
  ### Added
@@ -25,6 +25,7 @@ module Legion
25
25
  Dalli.logger = Legion::Logging
26
26
  cache_opts = settings.merge(opts)
27
27
  cache_opts[:value_max_bytes] ||= 8 * 1024 * 1024
28
+ cache_opts[:serializer] ||= Legion::JSON
28
29
 
29
30
  @client = ConnectionPool.new(size: pool_size, timeout: timeout) do
30
31
  Dalli::Client.new(resolved, cache_opts)
@@ -10,24 +10,32 @@ module Legion
10
10
  include Legion::Cache::Pool
11
11
  extend self # rubocop:disable Style/ModuleFunction
12
12
 
13
- def client(pool_size: 20, timeout: 5, server: nil, servers: [], **)
13
+ def client(pool_size: 20, timeout: 5, server: nil, servers: [], cluster: nil, **) # rubocop:disable Metrics/ParameterLists
14
14
  return @client unless @client.nil?
15
15
 
16
16
  @pool_size = pool_size
17
- @timeout = timeout
18
-
19
- resolved = Legion::Cache::Settings.resolve_servers(
20
- driver: 'redis', server: server, servers: servers
21
- )
22
- host, port = resolved.first.split(':')
17
+ @timeout = timeout
23
18
 
24
19
  @client = ConnectionPool.new(size: pool_size, timeout: timeout) do
25
- ::Redis.new(host: host, port: port.to_i)
20
+ build_redis_client(server: server, servers: servers, cluster: cluster)
26
21
  end
27
22
  @connected = true
28
23
  @client
29
24
  end
30
25
 
26
+ def build_redis_client(server: nil, servers: [], cluster: nil)
27
+ nodes = Array(cluster).compact
28
+ if nodes.any?
29
+ ::Redis.new(cluster: nodes)
30
+ else
31
+ resolved = Legion::Cache::Settings.resolve_servers(
32
+ driver: 'redis', server: server, servers: servers
33
+ )
34
+ host, port = resolved.first.split(':')
35
+ ::Redis.new(host: host, port: port.to_i)
36
+ end
37
+ end
38
+
31
39
  def get(key)
32
40
  client.with { |conn| conn.get(key) }
33
41
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Cache
5
- VERSION = '1.3.2'
5
+ VERSION = '1.3.4'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity