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
-
.cache ⇒ Object
Get the global cache implementation used for storing cacheable serializers.
-
.cache=(cache) ⇒ Object
Set the global cache implementation used for storing cacheable serializers.
Class Method Details
.cache ⇒ Object
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 |