Module: Rabarber::Core::Cache
- Defined in:
- lib/rabarber/core/cache.rb
Class Method Summary collapse
- .clear ⇒ Object
- .delete(*uids) ⇒ Object
- .enabled? ⇒ Boolean
- .fetch(uid) ⇒ Object
- .prepare_key(uid) ⇒ Object
Class Method Details
.clear ⇒ Object
26 27 28 |
# File 'lib/rabarber/core/cache.rb', line 26 def clear Rails.cache.delete_matched(/^#{CACHE_PREFIX}/o) end |
.delete(*uids) ⇒ Object
16 17 18 19 20 |
# File 'lib/rabarber/core/cache.rb', line 16 def delete(*uids) return unless enabled? Rails.cache.delete_multi(uids.map { prepare_key(_1) }) if uids.any? end |
.enabled? ⇒ Boolean
22 23 24 |
# File 'lib/rabarber/core/cache.rb', line 22 def enabled? Rabarber::Configuration.cache_enabled end |
.fetch(uid) ⇒ Object
10 11 12 13 14 |
# File 'lib/rabarber/core/cache.rb', line 10 def fetch(uid, &) return yield unless enabled? Rails.cache.fetch(prepare_key(uid), expires_in: 1.hour, race_condition_ttl: 5.seconds, &) end |
.prepare_key(uid) ⇒ Object
30 31 32 |
# File 'lib/rabarber/core/cache.rb', line 30 def prepare_key(uid) "#{CACHE_PREFIX}:#{Digest::SHA2.hexdigest(Marshal.dump(uid))}" end |