class FastSerializer::ArraySerializer
Serializer
implementation for serializing an array of objects. This class allows taking advantage of a single SerializationContext
for caching duplicate serializers.
Public Class Methods
new(object, options = nil)
click to toggle source
Calls superclass method
FastSerializer::Serializer::new
# File lib/fast_serializer/array_serializer.rb, line 12 def initialize(object, options = nil) super(Array(object), options) end
Public Instance Methods
as_json(*args)
click to toggle source
Calls superclass method
FastSerializer::Serializer#as_json
# File lib/fast_serializer/array_serializer.rb, line 54 def as_json(*args) if array.nil? nil elsif array.empty? [] else super[:array] end end
Also aliased as: to_a
cache()
click to toggle source
Calls superclass method
FastSerializer::Serializer#cache
# File lib/fast_serializer/array_serializer.rb, line 44 def cache if option(:cache) true elsif option(:serializer) option(:serializer).cache else super end end
cache_key()
click to toggle source
Calls superclass method
FastSerializer::Serializer#cache_key
# File lib/fast_serializer/array_serializer.rb, line 16 def cache_key if option(:serializer) array.collect(&:cache_key) else super end end
cache_ttl()
click to toggle source
Calls superclass method
FastSerializer::Serializer#cache_ttl
# File lib/fast_serializer/array_serializer.rb, line 34 def cache_ttl if option(:cache_ttl) true elsif option(:serializer) option(:serializer).cache_ttl else super end end
cacheable?()
click to toggle source
Calls superclass method
FastSerializer::Serializer#cacheable?
# File lib/fast_serializer/array_serializer.rb, line 24 def cacheable? if option(:cacheable) || self.class.cacheable? true elsif option(:serializer) option(:serializer).cacheable? else super end end
Protected Instance Methods
load_from_cache()
click to toggle source
# File lib/fast_serializer/array_serializer.rb, line 70 def load_from_cache if cache values = cache.fetch_all(array, cache_ttl){|serializer| serializer.as_json} {:array => values} else load_hash end end
Private Instance Methods
array()
click to toggle source
# File lib/fast_serializer/array_serializer.rb, line 81 def array unless defined?(@_array) serializer = option(:serializer) if serializer serializer_options = option(:serializer_options) @_array = object.collect{|obj| serializer.new(obj, serializer_options)} else @_array = object end end @_array end