counter_cache_update 0.0.7 → 0.0.9
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/Rakefile +1 -1
- data/app/services/counter_cache_update/table_updator_service.rb +13 -4
- data/app/services/counter_cache_update/update_service.rb +1 -1
- data/config/routes.rb +1 -0
- data/lib/counter_cache_update/engine.rb +1 -1
- data/lib/counter_cache_update/version.rb +1 -1
- metadata +17 -38
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c924ced8c047b5ac4b52f6f24f78e9f43d2ebdd0c7af1f6ffa9b57d1593228e5
|
|
4
|
+
data.tar.gz: 270a26e92c2378eef12437d1b05182a9ea4cc5e29ced153ebec1fa8307936da4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 76a2f5200c6ff53ad9cfdb883c8d02c1a6ce2a630339a0041a1056172bf3540254bf2c22ac44b1fd65f4f7d3dad962c830536ca4d59d6e9b74e4347ca51a0b48
|
|
7
|
+
data.tar.gz: 0ed4773593056c69967c1d43c7d5f57a69c5f555510d0824aaf8ee3f3a8a3feea7e4c88a08052795709099dca85fdf0d984aa4c52be20434711002bdb9d801f7
|
data/Rakefile
CHANGED
|
@@ -6,6 +6,8 @@ class CounterCacheUpdate::TableUpdatorService < ServicePattern::Service
|
|
|
6
6
|
|
|
7
7
|
@model_class = model_class
|
|
8
8
|
@model_class ||= @reflection.class_name.constantize
|
|
9
|
+
|
|
10
|
+
raise "Column not found: #{table_name}.#{column_name}" if @model_class.column_names.exclude?(column_name)
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
def perform
|
|
@@ -16,13 +18,20 @@ class CounterCacheUpdate::TableUpdatorService < ServicePattern::Service
|
|
|
16
18
|
private
|
|
17
19
|
|
|
18
20
|
def column_name
|
|
19
|
-
@column_name ||=
|
|
20
|
-
|
|
21
|
+
@column_name ||= begin
|
|
22
|
+
counter_cache = reflection.options[:counter_cache]
|
|
23
|
+
|
|
24
|
+
case counter_cache
|
|
25
|
+
when true
|
|
21
26
|
"#{reflection.active_record.name.pluralize.underscore}_count"
|
|
27
|
+
when Hash
|
|
28
|
+
counter_cache[:column].presence&.to_s || "#{reflection.active_record.name.pluralize.underscore}_count"
|
|
22
29
|
else
|
|
23
|
-
reflection.
|
|
30
|
+
raise "The reflection #{reflection.active_record.name}##{reflection.name} hasn't got counter_cache set?" unless counter_cache
|
|
31
|
+
|
|
32
|
+
counter_cache
|
|
24
33
|
end
|
|
25
|
-
end
|
|
34
|
+
end
|
|
26
35
|
end
|
|
27
36
|
|
|
28
37
|
def count_sql
|
|
@@ -23,7 +23,7 @@ private
|
|
|
23
23
|
model_classes.each do |model_class|
|
|
24
24
|
@progress_bar&.increment!
|
|
25
25
|
|
|
26
|
-
model_class.reflections.
|
|
26
|
+
model_class.reflections.each_value do |reflection|
|
|
27
27
|
next unless reflection.macro.to_sym == :belongs_to
|
|
28
28
|
next unless reflection.options[:counter_cache]
|
|
29
29
|
|
data/config/routes.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: counter_cache_update
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kaspernj
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-12-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -16,14 +16,20 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: '6.1'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '8.0'
|
|
20
23
|
type: :runtime
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
26
|
requirements:
|
|
24
27
|
- - ">="
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
29
|
+
version: '6.1'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '8.0'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: service_pattern
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -38,34 +44,6 @@ dependencies:
|
|
|
38
44
|
- - ">="
|
|
39
45
|
- !ruby/object:Gem::Version
|
|
40
46
|
version: 1.0.0
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: pry-rails
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">="
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - ">="
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: tzinfo-data
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - ">="
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - ">="
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0'
|
|
69
47
|
description: Scans all your models and updates all counter caches with optimised SQL.
|
|
70
48
|
email:
|
|
71
49
|
- kaspernj@gmail.com
|
|
@@ -96,8 +74,9 @@ files:
|
|
|
96
74
|
homepage: https://github.com/kaspernj/counter_cache_update
|
|
97
75
|
licenses:
|
|
98
76
|
- MIT
|
|
99
|
-
metadata:
|
|
100
|
-
|
|
77
|
+
metadata:
|
|
78
|
+
rubygems_mfa_required: 'true'
|
|
79
|
+
post_install_message:
|
|
101
80
|
rdoc_options: []
|
|
102
81
|
require_paths:
|
|
103
82
|
- lib
|
|
@@ -105,15 +84,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
105
84
|
requirements:
|
|
106
85
|
- - ">="
|
|
107
86
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: '
|
|
87
|
+
version: '3.0'
|
|
109
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
89
|
requirements:
|
|
111
90
|
- - ">="
|
|
112
91
|
- !ruby/object:Gem::Version
|
|
113
92
|
version: '0'
|
|
114
93
|
requirements: []
|
|
115
|
-
rubygems_version: 3.
|
|
116
|
-
signing_key:
|
|
94
|
+
rubygems_version: 3.5.22
|
|
95
|
+
signing_key:
|
|
117
96
|
specification_version: 4
|
|
118
97
|
summary: Scans all your models and updates all counter caches with optimised SQL.
|
|
119
98
|
test_files: []
|