Module: Rabarber::Core::Cache

Defined in:
lib/rabarber/core/cache.rb

Class Method Summary collapse

Class Method Details

.clearObject



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

Returns:

  • (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