module ActiveModel::Serializer::Caching::ClassMethods
def _skip_digest?
def _skip_digest? _cache_options && _cache_options[:skip_digest] end
def cache(options = {})
- Todo: - require less code comments. See
Parameters:
-
options
(Hash
) -- with valid keys:
def cache(options = {}) self._cache = options.delete(:cache_store) || ActiveModelSerializers.config.cache_store || ActiveSupport::Cache.lookup_store(:null_store) self._cache_key = options.delete(:key) self._cache_only = options.delete(:only) self._cache_except = options.delete(:except) self._cache_options = options.empty? ? nil : options end
def cache_enabled?
def cache_enabled? perform_caching? && cache_store && !_cache_only && !_cache_except end
def cache_store
-
(nil)
- when _cache is the NullStore and ActiveModelSerializers.config.cache_store is nil. -
(ActiveModelSerializers.config.cache_store)
- when _cache is the NullStore. -
(._cache)
- when _cache is not the NullStore -
(nil)
- when _cache is not set (i.e. when `cache` has not been called)
def cache_store return nil if _cache.nil? return _cache if _cache.class != ActiveSupport::Cache::NullStore if ActiveModelSerializers.config.cache_store self._cache = ActiveModelSerializers.config.cache_store else nil end end
def digest_caller_file(caller_line)
def digest_caller_file(caller_line) serializer_file_path = caller_line[CALLER_FILE] serializer_file_contents = IO.read(serializer_file_path) Digest::MD5.hexdigest(serializer_file_contents) rescue TypeError, Errno::ENOENT warn <<-EOF.strip_heredoc Cannot digest non-existent file: '#{caller_line}'. Please set `::_cache_digest` of the serializer if you'd like to cache it. EOF ''.freeze end
def fragment_cache_enabled?
def fragment_cache_enabled? perform_caching? && cache_store && (_cache_only && !_cache_except || !_cache_only && _cache_except) end
def fragmented(serializer)
- Api: - private
def fragmented(serializer) self._fragmented = serializer end
def inherited(base)
def inherited(base) super caller_line = caller[1] base._cache_digest = digest_caller_file(caller_line) end
def perform_caching
-
(true, false)
-
def perform_caching return @@perform_caching if defined?(@@perform_caching) && !@@perform_caching.nil? @@perform_caching = ActiveModelSerializers.config.perform_caching end