Complete extracting to Serializer#cached_attributes

This commit is contained in:
Benjamin Fleischer
2016-04-14 22:24:30 -05:00
parent 96750b2f9a
commit ba23de686d
2 changed files with 20 additions and 14 deletions

View File

@@ -1,3 +1,5 @@
# TODO(BF): refactor file to be smaller
# rubocop:disable Metrics/ModuleLength
module ActiveModel
class Serializer
UndefinedCacheKey = Class.new(StandardError)
@@ -206,6 +208,21 @@ module ActiveModel
end
end
def cached_attributes(options, cached_attributes, adapter_instance)
if self.class.cache_enabled?
key = cache_key(adapter_instance)
cached_attributes.fetch(key) do
cache_check(adapter_instance) do
attributes(options[:fields])
end
end
else
cache_check(adapter_instance) do
attributes(options[:fields])
end
end
end
def cache_check(adapter_instance)
if self.class.cache_enabled?
self.class.cache_store.fetch(cache_key(adapter_instance), self.class._cache_options) do
@@ -322,3 +339,4 @@ module ActiveModel
end
end
end
# rubocop:enable Metrics/ModuleLength