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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f727cafaa635682ea718968a48a16181fbd331be75b2721435bc1c54afba595d
4
- data.tar.gz: 0223c953148013b3b34099cda00b6fe2522810e1f51b38b1b54bde09fba11dce
3
+ metadata.gz: c924ced8c047b5ac4b52f6f24f78e9f43d2ebdd0c7af1f6ffa9b57d1593228e5
4
+ data.tar.gz: 270a26e92c2378eef12437d1b05182a9ea4cc5e29ced153ebec1fa8307936da4
5
5
  SHA512:
6
- metadata.gz: 5ba5596de6ebe289ca4d46919516005dc6fe3fe12f4032de4bd89065f49ab6a4c0d99b3b27ce04206efb9b207767883fbd5a006909c01cc3ad140bbbd920284e
7
- data.tar.gz: 6c59c8f4d63629c14396cca7b4ed02098fef3aca63f70ae3460c96ae70874c0f690f3f0dd0d4a428e411d7b933631a9461e603796a7404e66127466016fefa1d
6
+ metadata.gz: 76a2f5200c6ff53ad9cfdb883c8d02c1a6ce2a630339a0041a1056172bf3540254bf2c22ac44b1fd65f4f7d3dad962c830536ca4d59d6e9b74e4347ca51a0b48
7
+ data.tar.gz: 0ed4773593056c69967c1d43c7d5f57a69c5f555510d0824aaf8ee3f3a8a3feea7e4c88a08052795709099dca85fdf0d984aa4c52be20434711002bdb9d801f7
data/Rakefile CHANGED
@@ -20,7 +20,7 @@ load "rails/tasks/engine.rake"
20
20
 
21
21
  load "rails/tasks/statistics.rake"
22
22
 
23
- if Rails.env.development? || Rails.env.test?
23
+ if Rails.env.local?
24
24
  require "best_practice_project"
25
25
  BestPracticeProject.load_tasks
26
26
  end
@@ -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 ||= proc do
20
- if reflection.options[:counter_cache] == true
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.options[:counter_cache]
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.call
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.each do |_name, reflection|
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
@@ -1,2 +1,3 @@
1
1
  CounterCacheUpdate::Engine.routes.draw do
2
+ # Intentionally empty; this engine doesn't define routes.
2
3
  end
@@ -1,5 +1,5 @@
1
1
  module CounterCacheUpdate; end
2
2
 
3
- class CounterCacheUpdate::Engine < ::Rails::Engine
3
+ class CounterCacheUpdate::Engine < Rails::Engine
4
4
  isolate_namespace CounterCacheUpdate
5
5
  end
@@ -1,3 +1,3 @@
1
1
  module CounterCacheUpdate
2
- VERSION = "0.0.7".freeze
2
+ VERSION = "0.0.9".freeze
3
3
  end
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.7
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: 2021-10-04 00:00:00.000000000 Z
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: 5.1.0
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: 5.1.0
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
- post_install_message:
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: '2.5'
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.1.6
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: []