incrdecr_cached_counts 1.0.1 → 1.0.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 +4 -4
- data/incrdecr_cached_counts.gemspec +0 -1
- data/lib/cached_counts/version.rb +1 -1
- data/lib/cached_counts.rb +4 -12
- data/spec/spec_helper.rb +7 -0
- metadata +3 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 787795a7c9bd59e8a1163b8a1b0865607606e6670b40f646e786efee72ff3d12
|
4
|
+
data.tar.gz: b99c1eb114d83506b6e19af822f324a424ff49c9c4f7fb304ea0097407ade46d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6762bf048717294e9039485308b2ed15db8b9f94e9f6653b56aab402d75021b88b7074af9a43db3519c4d294fdfab3a38e831f28ac25ff786ef0613c3e5db9fe
|
7
|
+
data.tar.gz: 766cb4cff090a49c4752c14624b39447ca51d908634ec6abeeaaaa6a3be1c1e1353a6a98a72736d2baf8600542e8ced8134f29a5d9ac10b1037354f69bb852e3
|
@@ -22,7 +22,6 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.add_dependency "rails", ">= 7.0"
|
23
23
|
s.add_dependency "dalli"
|
24
24
|
|
25
|
-
s.add_development_dependency "concurrent-ruby", "1.3.4"
|
26
25
|
s.add_development_dependency "sqlite3"
|
27
26
|
s.add_development_dependency "rspec"
|
28
27
|
s.add_development_dependency "database_cleaner"
|
data/lib/cached_counts.rb
CHANGED
@@ -288,23 +288,15 @@ module CachedCounts
|
|
288
288
|
def add_counting_hooks(attribute_name, key_getter, counted_class, options)
|
289
289
|
increment_hook = "increment_#{attribute_name}_count".to_sym
|
290
290
|
counted_class.send :define_method, increment_hook do
|
291
|
-
if (key = instance_exec &key_getter)
|
292
|
-
Rails.cache.increment(
|
293
|
-
key,
|
294
|
-
1,
|
295
|
-
initial: nil # Increment only if the key already exists
|
296
|
-
)
|
291
|
+
if (key = instance_exec &key_getter) && Rails.cache.exist?(key, raw: true)
|
292
|
+
Rails.cache.increment(key)
|
297
293
|
end
|
298
294
|
end
|
299
295
|
|
300
296
|
decrement_hook = "decrement_#{attribute_name}_count".to_sym
|
301
297
|
counted_class.send :define_method, decrement_hook do
|
302
|
-
if (key = instance_exec &key_getter)
|
303
|
-
Rails.cache.decrement(
|
304
|
-
key,
|
305
|
-
1,
|
306
|
-
initial: nil # Decrement only if the key already exists
|
307
|
-
)
|
298
|
+
if (key = instance_exec &key_getter) && Rails.cache.exist?(key, raw: true)
|
299
|
+
Rails.cache.decrement(key)
|
308
300
|
end
|
309
301
|
end
|
310
302
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'bundler/setup'
|
3
|
+
|
4
|
+
# This is a workaround for https://github.com/rails/rails/issues/54260.
|
5
|
+
# It can be removed when we stop supporting Rails 7.0.
|
6
|
+
if Gem::Specification.find_by_name('rails').version < Gem::Version.new('7.1')
|
7
|
+
require 'logger'
|
8
|
+
end
|
9
|
+
|
3
10
|
require 'active_record'
|
4
11
|
require 'rails'
|
5
12
|
require 'active_support/cache/mem_cache_store'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: incrdecr_cached_counts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Judd
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-07-10 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: rails
|
@@ -37,20 +37,6 @@ dependencies:
|
|
37
37
|
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
|
-
- !ruby/object:Gem::Dependency
|
41
|
-
name: concurrent-ruby
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - '='
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 1.3.4
|
47
|
-
type: :development
|
48
|
-
prerelease: false
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - '='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: 1.3.4
|
54
40
|
- !ruby/object:Gem::Dependency
|
55
41
|
name: sqlite3
|
56
42
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,13 +144,4 @@ requirements: []
|
|
158
144
|
rubygems_version: 3.6.3
|
159
145
|
specification_version: 4
|
160
146
|
summary: A replacement for Rails' counter caches using memcached (via Dalli)
|
161
|
-
test_files:
|
162
|
-
- spec/caches_count_of_spec.rb
|
163
|
-
- spec/caches_count_where_spec.rb
|
164
|
-
- spec/database.yml
|
165
|
-
- spec/fixtures.rb
|
166
|
-
- spec/fixtures/department.rb
|
167
|
-
- spec/fixtures/following.rb
|
168
|
-
- spec/fixtures/university.rb
|
169
|
-
- spec/fixtures/user.rb
|
170
|
-
- spec/spec_helper.rb
|
147
|
+
test_files: []
|