active_cached_resource 0.1.4 → 0.1.5

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: 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: []