Module: FastSerializer

Defined in:
lib/fast_serializer.rb,
lib/fast_serializer/cache.rb,
lib/fast_serializer/serializer.rb,
lib/fast_serializer/array_serializer.rb,
lib/fast_serializer/serialized_field.rb,
lib/fast_serializer/serialization_context.rb,
lib/fast_serializer/cache/active_support_cache.rb

Defined Under Namespace

Modules: Serializer Classes: ArraySerializer, Cache, CircularReferenceError, SerializationContext, SerializedField

Class Method Summary collapse

Class Method Details

.cacheObject

Get the global cache implementation used for storing cacheable serializers.



17
18
19
# File 'lib/fast_serializer.rb', line 17

def cache
  @cache
end

.cache=(cache) ⇒ Object

Set the global cache implementation used for storing cacheable serializers. The cache implementation should implement the fetch method as defined in FastSerializer::Cache. By default no cache is set so caching won’t do anything.

In a Rails app, you can initialize the cache by simply passing in the value :rails to use the default Rails.cache. You can also directly pass in an ActiveSupportCache::Store.



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/fast_serializer.rb', line 27

def cache=(cache)
  if cache == :rails
    cache = Cache::ActiveSupportCache.new(Rails.cache)
  elsif defined?(ActiveSupport::Cache::Store) && cache.is_a?(ActiveSupport::Cache::Store)
    cache = Cache::ActiveSupportCache.new(cache)
  end
  if cache && !cache.is_a?(FastSerializer::Cache)
    raise ArgumentError.new("The cache must be a FastSerializer::Cache or ActiveSupport::Cache::Store")
  end
  @cache = cache
end