active_cached_resource 0.1.4 → 0.1.5

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: fcd11f4ab22e963e432b2130606aa5f56102a284b86752847ea1f2b3c2ca8407
4
- data.tar.gz: 87a5cfc1d2a99e4de13748937ec4649c9814c850008f4ebc6246c2f9ad35c746
3
+ metadata.gz: febe875b913adcca00b5ca5eab9c43b23691912ba4465ce34c3f842ba2c0652c
4
+ data.tar.gz: 39d644336fd27dc4404c8c2d6f130b74e64686c8d923ee6c3b0257fcd1890576
5
5
  SHA512:
6
- metadata.gz: 2cba101b3f9755198b284ba74a1a2644ac4f4eeca7848460db78ff9db0a41163d45f1eb1d300f14460cdde6081db0007938dc47f1524f01e4c5b5b35c27ffe94
7
- data.tar.gz: d15d419528bc2793104bb951bdc12665ded24a17d075e6afc19fd70ad9ade8d0ac42f60517a14316bb912df03e384e1e2b544097fb4ab9e9ce68414183f4dde8
6
+ metadata.gz: 78ac473ce4a0710031fd09b9f88f713e90838b287e8361b22ef1c534f8cb9d13369ea2ab1eb78a96e47ea7cfa04bed8014157891098f92743bf4f54113292596
7
+ data.tar.gz: dc3d33e8c76855b9e58eab1d258aa335f3d939688e2be0ee853a0614d901f61339204c358d866e8ec379318c0fd604e3eee2d4a3318a7d6a28cf9662bf6b2e9b
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [0.1.5] - 2024-01-30
2
+ - Added callbacks to cache:
3
+ - Create/POST, refresh cache after successful POST request
4
+ - Update/PUT, refresh cache after successful PUT request
5
+ - Destroy/DELETE, invalidate cache after successful DELETE request
6
+ - Fixed issue with generator for SQLCache strategy tables
1
7
  ## [0.1.4] - 2024-12-20
2
8
  - CI Improvements
3
9
  - Added annotations
@@ -140,13 +140,13 @@ module ActiveCachedResource
140
140
  should_reload ? find_via_reload(*args) : find_via_cache(*args)
141
141
  end
142
142
 
143
- # Clears all cache matching the cache key prefix of the model.
144
- #
145
- # This method clears all cached entries that match the cache key prefix.
143
+ # Clears the cache for the specified pattern.
146
144
  #
145
+ # @param pattern [String, nil] The pattern to match cache keys against.
146
+ # If nil, all cache keys with this models prefix will be cleared.
147
147
  # @return [void]
148
- def clear_cache
149
- cached_resource.cache.clear("#{cache_key_prefix}/")
148
+ def clear_cache(pattern = nil)
149
+ cached_resource.cache.clear("#{cache_key_prefix}/#{pattern}")
150
150
  end
151
151
 
152
152
  private
@@ -8,6 +8,11 @@ module ActiveCachedResource
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  included do
11
+ before_save :invalidate_cache
12
+
13
+ after_save :save_to_cache
14
+ after_destroy :invalidate_cache
15
+
11
16
  class << self
12
17
  attr_accessor :cached_resource
13
18
 
@@ -47,5 +52,15 @@ module ActiveCachedResource
47
52
  end
48
53
  end
49
54
  # :nodoc:
55
+
56
+ private
57
+
58
+ def invalidate_cache
59
+ self.class.clear_cache(id.to_s)
60
+ end
61
+
62
+ def save_to_cache
63
+ self.class.send(:cache_write, self, id)
64
+ end
50
65
  end
51
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveCachedResource
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_cached_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Luis Urena
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-12-22 00:00:00.000000000 Z
10
+ date: 2025-01-09 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activemodel-serializers-xml
@@ -117,7 +117,7 @@ files:
117
117
  - lib/activeresource/lib/active_resource/threadsafe_attributes.rb
118
118
  - lib/activeresource/lib/active_resource/validations.rb
119
119
  - lib/activeresource/lib/activeresource.rb
120
- - lib/generators/active_cached_resource/install_generator.rb
120
+ - lib/generators/active_cached_resource/active_record_generator.rb
121
121
  - lib/generators/active_cached_resource/templates/migration.erb
122
122
  homepage: https://github.com/jlurena/active_cached_resource
123
123
  licenses: []
@@ -141,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
143
  requirements: []
144
- rubygems_version: 3.6.1
144
+ rubygems_version: 3.6.2
145
145
  specification_version: 4
146
146
  summary: ActiveResource, but with a caching layer.
147
147
  test_files: []