Module: SecondLevelCache::Mixin::ClassMethods

Defined in:
lib/second_level_cache.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#second_level_cache_optionsObject (readonly)

Returns the value of attribute second_level_cache_options.



19
20
21
# File 'lib/second_level_cache.rb', line 19

def second_level_cache_options
  @second_level_cache_options
end

Instance Method Details

#acts_as_cached(options = {}) ⇒ Object



21
22
23
24
25
26
# File 'lib/second_level_cache.rb', line 21

def acts_as_cached(options = {})
  @second_level_cache_enabled = true
  @second_level_cache_options = options
  @second_level_cache_options[:expires_in] ||= 1.week
  @second_level_cache_options[:version] ||= 0
end

#cache_key_prefixObject



48
49
50
# File 'lib/second_level_cache.rb', line 48

def cache_key_prefix
  Config.cache_key_prefix
end

#cache_storeObject



40
41
42
# File 'lib/second_level_cache.rb', line 40

def cache_store
  Config.cache_store
end

#cache_versionObject



52
53
54
# File 'lib/second_level_cache.rb', line 52

def cache_version
  second_level_cache_options[:version]
end

#expire_second_level_cache(id) ⇒ Object



64
65
66
# File 'lib/second_level_cache.rb', line 64

def expire_second_level_cache(id)
  SecondLevelCache.cache_store.delete(second_level_cache_key(id)) if self.second_level_cache_enabled?
end

#loggerObject



44
45
46
# File 'lib/second_level_cache.rb', line 44

def logger
  Config.logger
end

#read_second_level_cache(id) ⇒ Object



60
61
62
# File 'lib/second_level_cache.rb', line 60

def read_second_level_cache(id)
  RecordMarshal.load(SecondLevelCache.cache_store.read(second_level_cache_key(id))) if self.second_level_cache_enabled?
end

#second_level_cache_enabled?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/second_level_cache.rb', line 28

def second_level_cache_enabled?
  !!@second_level_cache_enabled
end

#second_level_cache_key(id) ⇒ Object



56
57
58
# File 'lib/second_level_cache.rb', line 56

def second_level_cache_key(id)
  "#{cache_key_prefix}/#{name.downcase}/#{id}/#{cache_version}"
end

#without_second_level_cacheObject



32
33
34
35
36
37
38
# File 'lib/second_level_cache.rb', line 32

def without_second_level_cache
  old, @second_level_cache_enabled = @second_level_cache_enabled, false

  yield if block_given?
ensure
  @second_level_cache_enabled = old
end