Class: ActiveModel::Serializer::Adapter::CachedSerializer
- Inherits:
-
Object
- Object
- ActiveModel::Serializer::Adapter::CachedSerializer
- Defined in:
- lib/active_model/serializer/adapter/cached_serializer.rb
Instance Method Summary (collapse)
- - (Object) cache_check(adapter_instance)
- - (Object) cache_key
- - (Boolean) cached?
- - (Boolean) fragment_cached?
-
- (CachedSerializer) initialize(serializer)
constructor
A new instance of CachedSerializer.
- - (Object) object_cache_key
Constructor Details
- (CachedSerializer) initialize(serializer)
Returns a new instance of CachedSerializer
5 6 7 8 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 5 def initialize(serializer) @cached_serializer = serializer @klass = @cached_serializer.class end |
Instance Method Details
- (Object) cache_check(adapter_instance)
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 10 def cache_check(adapter_instance) if cached? @klass._cache.fetch(cache_key, @klass.) do yield end elsif fragment_cached? FragmentCache.new(adapter_instance, @cached_serializer, adapter_instance.).fetch else yield end end |
- (Object) cache_key
30 31 32 33 34 35 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 30 def cache_key parts = [] parts << object_cache_key parts << @klass._cache_digest unless @klass. && @klass.[:skip_digest] parts.join('/') end |
- (Boolean) cached?
22 23 24 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 22 def cached? @klass._cache && !@klass._cache_only && !@klass._cache_except end |
- (Boolean) fragment_cached?
26 27 28 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 26 def fragment_cached? @klass._cache_only && !@klass._cache_except || !@klass._cache_only && @klass._cache_except end |
- (Object) object_cache_key
37 38 39 40 41 |
# File 'lib/active_model/serializer/adapter/cached_serializer.rb', line 37 def object_cache_key object_time_safe = @cached_serializer.object.updated_at object_time_safe = object_time_safe.strftime('%Y%m%d%H%M%S%9N') if object_time_safe.respond_to?(:strftime) (@klass._cache_key) ? "#{@klass._cache_key}/#{@cached_serializer.object.id}-#{object_time_safe}" : @cached_serializer.object.cache_key end |