common-data-caching 1.1.0 → 1.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: d730266341a778fbe9be901c33888915f5ed61d1568021321c06be30a80a5eda
4
- data.tar.gz: ac3e37326cec7a8e2821bd20f9d2ea3e02a66b5a902dacf481133940eb2c57e7
3
+ metadata.gz: 8a082bb986847e69fc1e8d00e0ca871c87ba71cf91fdbaad036dbb7212f3a15e
4
+ data.tar.gz: be69e9b648072e06927fa1808eb17fc6bb2a50cae15bd3fe1cee808439599d5b
5
5
  SHA512:
6
- metadata.gz: 4703cfd883e6b6c5ddba969b9a0d1ad2993102bf43eb9c0abb6064a3edfeaf56c653842e3d055626971afd46f1e351238292cdff8d132b5f8ce6bf7d23ad5552
7
- data.tar.gz: 71180277c938de63200c76f51481fd427ae1d69995986e8fbdb3126be3ce45ee3184680c813344bc381f3378d8dabec8127f09603fbf0a774f6a867ad58814b1
6
+ metadata.gz: 106b64506c7d3ca88b2e5b1caae0e2ab4025475ee07f574983e5d66c0c8fc329e4e8ef1adf0e3d15f15f0bb87b232b836a2f4e4880b6ccb5d858388d0a29357f
7
+ data.tar.gz: '08f15a5c15f5667d436d8f770d3ccc22561d22272ec998feed7847cc294b6ac21104300a299c9ae0263cac474c39381161169d175704fed08fb35b825695880f'
data/README.md CHANGED
@@ -47,6 +47,14 @@ User.common_data_cache_collection
47
47
  CommonDataCaching.versions
48
48
  ```
49
49
 
50
+ При необходимости, чтобы не обновлять кеш при создании или редактировании определенной записи, передайте `skip_common_data_caching: true` в качестве аргумента:
51
+
52
+ ```ruby
53
+ User.create(email: "user@example.com", skip_common_data_caching: true)
54
+
55
+ User.find(1).update(name: "User", skip_common_data_caching: true)
56
+ ```
57
+
50
58
  ### Сортировка
51
59
 
52
60
  Для применения сортировки, передайте опцию `order`:
@@ -3,6 +3,10 @@ module CommonDataCaching
3
3
 
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ included do
7
+ attr_accessor :skip_common_data_caching
8
+ end
9
+
6
10
  def common_data_caching?
7
11
  true
8
12
  end
@@ -9,6 +9,15 @@ module CommonDataCaching
9
9
  Rails.cache.read('common-data-caching-versions') || {}
10
10
  end
11
11
 
12
+ def self.all_collections
13
+ versions.map do |entity, _version|
14
+ {
15
+ entity:,
16
+ objects: entity.constantize.common_data_cache_collection
17
+ }
18
+ end
19
+ end
20
+
12
21
  def self.update_cache
13
22
  # получение списка моделей
14
23
  Rails.application.eager_load!
@@ -49,10 +58,16 @@ ActiveSupport.on_load(:active_record) do
49
58
  # методы кеширования
50
59
  extend CommonDataCaching::ClassMethods
51
60
 
52
- # установка коллбэков
61
+ # коллбэки
53
62
  include CommonDataCaching::Callbacks
54
- after_commit :update_common_data_cache, on: %i[create update destroy], if: :common_data_caching?
55
- after_commit :update_common_data_cache_versions, on: %i[create update destroy], if: :common_data_caching?
63
+
64
+ after_commit :update_common_data_cache,
65
+ on: %i[create update destroy],
66
+ if: proc { |i| i.common_data_caching? && i.skip_common_data_caching != true }
67
+
68
+ after_commit :update_common_data_cache_versions,
69
+ on: %i[create update destroy],
70
+ if: proc { |i| i.common_data_caching? && i.skip_common_data_caching != true }
56
71
  end
57
72
  end
58
73
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: common-data-caching
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-30 00:00:00.000000000 Z
11
+ date: 2024-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails