Class: FastSerializer::Cache::ActiveSupportCache

Inherits:
FastSerializer::Cache show all
Defined in:
lib/fast_serializer/cache/active_support_cache.rb

Overview

ActiveSupport compatible cache implementation.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cache) ⇒ ActiveSupportCache

Returns a new instance of ActiveSupportCache.



6
7
8
# File 'lib/fast_serializer/cache/active_support_cache.rb', line 6

def initialize(cache)
  @cache = cache
end

Instance Attribute Details

#cacheObject (readonly)

Returns the value of attribute cache.



4
5
6
# File 'lib/fast_serializer/cache/active_support_cache.rb', line 4

def cache
  @cache
end

Instance Method Details

#fetch(serializer, ttl) ⇒ Object



10
11
12
13
14
# File 'lib/fast_serializer/cache/active_support_cache.rb', line 10

def fetch(serializer, ttl)
  @cache.fetch(serializer.cache_key, :expires_in => ttl) do
    yield(serializer)
  end
end

#fetch_all(serializers, ttl) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/fast_serializer/cache/active_support_cache.rb', line 16

def fetch_all(serializers, ttl)
  results = @cache.fetch_multi(*serializers){|serializer| yield(serializer)}
  if results.is_a?(Hash)
    serializers.collect{|serializer| results[serializer]}
  else
    results
  end
end