legion-cache 1.3.3 → 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: 7db353b43c06f9806430d2ec3ddc4849291807e40738aadc091953921652f040
4
- data.tar.gz: 16ddb108431e4eb528409c39e32d6f9e0492751f621be94262019280862b2135
3
+ metadata.gz: c04121f4d10bcc0076e189557b0036d02237fb97fd8bfa9c67779df4298d2e41
4
+ data.tar.gz: faaf6c6c82212257a9e99866948f57269147e0b942301893d100e580cd47e743
5
5
  SHA512:
6
- metadata.gz: 8920ab6bff2446296cf2160297d8d842f3ce1814ade1ff42cccb385853392d70896e5761a4f5e1fd33b09ef4ab66c74c934612dd492bf8dc2275a944d5937587
7
- data.tar.gz: 1ed21f756db3fcdedb7eeba08a7a28fef18f735afd898077eee64cb490600fcb1fea8fbdd44a4292c52dd9cc272177fc3d42f13b77fc1259c794ed72bac6d6e1
6
+ metadata.gz: ee4dfdf2ac8827b26ebfe5048450b951573fdc8e548b7016f33ed1f3caf2aa6ca56310aa5107942d7b5a388644b3a881c0e8ecee5a9440ef51a79308ab9b79f7
7
+ data.tar.gz: 185e0503c8bfbfcd839031ffe1d8300e4f3e4d475e627841d1ca9ae5cd9965566fcf5006da522fd29d65bf7e079fd372562aefae528e7db0f892e4f1738aa48c
@@ -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.3'
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.3
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity