smart_cache_store 0.2.0 → 0.3.0

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: 3255f6928a9b8e6a102b210749f0b31dea04654f583f4679832019d84f6f490a
4
- data.tar.gz: 03bee6a696eb0cfbcb5a1517818888ea866dc65b33a54a6b7c95cdad7efe2e9c
3
+ metadata.gz: a4bdb9fe3fd3e37388a3acf6b3baf5add0cc5b54fc1a6ba0092c99c1526226b3
4
+ data.tar.gz: 7ff024a2499dd5df7f42bdcbe9f6422eed0e50970e2a146d3d09c35b1fdd9bc6
5
5
  SHA512:
6
- metadata.gz: 3922f820e7b655a38a8ec5e688c8c18fab6a66ae499e9d01edc14fb1f9cb3c5d424456ffb2a0bcf89aaf4e4d1462fe63672baeb800902662ceecc1338853b275
7
- data.tar.gz: 87579ff4140abe65b6f2f402e720f43ffda8137333821410b10ea1aab0ce11e34e55eb3a5802376f3f2238e19b9bce30b7e26072c4a35fa2411df81433a862d9
6
+ metadata.gz: 66f840e0521852e358d1be01c186545f0bc920ded0e4509e211111d2f9a142b7464de4fc7032ef3c1d32fc714f4f2fb80593f8eccdd7d584ef6d0bae384c571c
7
+ data.tar.gz: d15389db9cd657838aca3e8fd903e5a1e7a80c978aaca4ee710191acac5b8f5abf7b23a49631ac86efe2b78f6a4d16fc402f96c45d4f1832ebc8d6cf8912adf5
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2021-2022 thomas morgan
1
+ Copyright 2021-2023 thomas morgan
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -11,7 +11,7 @@ Set by default:
11
11
  namespace: ENV['REDIS_NAMESPACE']
12
12
  expires_in: 1.day
13
13
  race_condition_ttl: 5.seconds
14
- pool_size: ENV['RAILS_MAX_THREADS'] || 5
14
+ pool: ENV['RAILS_MAX_THREADS'] || 5
15
15
  connect_timeout: 2
16
16
  read_timeout: 1
17
17
  write_timeout: 1
@@ -31,7 +31,7 @@ Set by default:
31
31
  expires_in: 1.day
32
32
  race_condition_ttl: 5.seconds
33
33
  failover: true
34
- pool_size: ENV['RAILS_MAX_THREADS'] || 5
34
+ pool: ENV['RAILS_MAX_THREADS'] || 5
35
35
 
36
36
  MemCacheStore's legacy initializer with `*addresses` as the first parameter, and the RedisCacheStore compatible `:url` are supported.
37
37
 
@@ -17,7 +17,7 @@ module ActiveSupport
17
17
  # ActiveSupport::Cache - universal options
18
18
  # :namespace{nil}, :compress{true}, :compress_threshold{1k}, :expires_in{0}, :race_condition_ttl{0}
19
19
  # ActiveSupport::Cache::Store
20
- # :pool_size{5}, :pool_timeout{5}
20
+ # :pool{5}, :pool_timeout{5}
21
21
  # Dalli::Client
22
22
  # :failover{true}, :serializer{Marshall}, :compressor{zlib}, :cache_nils{false}
23
23
  # :namespace{nil}, :expires_in{0}, :compress{false} (separate from AS::C's same options above)
@@ -28,34 +28,38 @@ module ActiveSupport
28
28
  expires_in: 1.day,
29
29
  race_condition_ttl: 5.seconds,
30
30
  failover: true,
31
- pool_size: ENV.fetch('RAILS_MAX_THREADS'){ 5 }.to_i,
31
+ pool: ENV.fetch('RAILS_MAX_THREADS'){ 5 }.to_i,
32
32
  )
33
+ args.reverse_merge!(pool_size: args.delete(:pool)) if ActiveSupport.version < '7.1.0.a'
33
34
  addresses.push Array(args.delete(:url)) if addresses.empty? && args.key?(:url)
34
35
  super(*addresses, args)
35
36
  end
36
37
 
37
38
 
38
- # MemCacheStore#increment docs say it will init any invalid value to 0.
39
- # In reality, it will only increment a pre-existing, raw value. everything else returns nil or an error.
40
- # This fixes init of missing value on both increment() and decrement().
41
- # Preexisting, invalid values still return errors.
39
+ if ActiveSupport.version < '7.1.0.a'
40
+ # MemCacheStore#increment docs say it will init any invalid value to 0.
41
+ # In reality, it will only increment a pre-existing, raw value. everything else returns nil or an error.
42
+ # This fixes init of missing value on both increment() and decrement().
43
+ # Preexisting, invalid values still return errors.
42
44
 
43
- def increment(name, amount = 1, options = nil)
44
- options = merged_options(options)
45
- instrument(:increment, name, amount: amount) do
46
- rescue_error_with nil do
47
- @data.then { |c| c.incr(normalize_key(name, options), amount, options[:expires_in], amount) }
45
+ def increment(name, amount = 1, options = nil)
46
+ options = merged_options(options)
47
+ instrument(:increment, name, amount: amount) do
48
+ rescue_error_with nil do
49
+ @data.then { |c| c.incr(normalize_key(name, options), amount, options[:expires_in], amount) }
50
+ end
48
51
  end
49
52
  end
50
- end
51
53
 
52
- def decrement(name, amount = 1, options = nil)
53
- options = merged_options(options)
54
- instrument(:decrement, name, amount: amount) do
55
- rescue_error_with nil do
56
- @data.then { |c| c.decr(normalize_key(name, options), amount, options[:expires_in], 0) }
54
+ def decrement(name, amount = 1, options = nil)
55
+ options = merged_options(options)
56
+ instrument(:decrement, name, amount: amount) do
57
+ rescue_error_with nil do
58
+ @data.then { |c| c.decr(normalize_key(name, options), amount, options[:expires_in], 0) }
59
+ end
57
60
  end
58
61
  end
62
+
59
63
  end
60
64
 
61
65
  end
@@ -15,24 +15,25 @@ module ActiveSupport
15
15
  # ActiveSupport::Cache - universal options
16
16
  # :namespace{nil}, :compress{true}, :compress_threshold{1k}, :expires_in{0}, :race_condition_ttl{0}
17
17
  # ActiveSupport::Cache::Store
18
- # :pool_size{5}, :pool_timeout{5}
18
+ # :pool{5}, :pool_timeout{5}
19
19
  # Redis
20
20
  # :host, :port, :db, :username, :password, :url, :path
21
21
  # ssl_params: {:ca_file, :cert, :key}
22
22
  # :sentinels, :role
23
- # :cluster, :replica
23
+ # :replica
24
24
  # :timeout (sets next 3), :connect_timeout, :read_timeout, :write_timeout
25
- # :reconnect_attempts, :reconnect_delay, :reconnect_delay_max
25
+ # :reconnect_attempts
26
26
  def initialize(**args)
27
27
  args.reverse_merge!(
28
28
  namespace: ENV['REDIS_NAMESPACE'],
29
29
  expires_in: 1.day,
30
30
  race_condition_ttl: 5.seconds,
31
- pool_size: ENV.fetch('RAILS_MAX_THREADS'){ 5 }.to_i,
31
+ pool: ENV.fetch('RAILS_MAX_THREADS'){ 5 }.to_i,
32
32
  connect_timeout: 2,
33
33
  read_timeout: 1,
34
34
  write_timeout: 1,
35
35
  )
36
+ args.reverse_merge!(pool_size: args.delete(:pool)) if ActiveSupport.version < '7.1.0.a'
36
37
  if Redis::VERSION >= '5'
37
38
  args.reverse_merge!(
38
39
  # when an array, contains delay for each reconnect attempt
@@ -1,3 +1,3 @@
1
1
  module SmartCacheStore
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_cache_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thomas morgan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-06 00:00:00.000000000 Z
11
+ date: 2023-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  requirements: []
78
- rubygems_version: 3.2.33
78
+ rubygems_version: 3.3.26
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: Production-ready enhancements for mem_cache_store and redis_cache_store