class ScopedSerializer::ArraySerializer
Attributes
array[R]
options[R]
Public Class Methods
new(array, options={})
click to toggle source
# File lib/scoped_serializer/array_serializer.rb, line 6 def initialize(array, options={}) @array = array @options = options || {} @options[:each_serializer] ||= @options.delete(:serializer) end
Public Instance Methods
meta()
click to toggle source
Calls superclass method
# File lib/scoped_serializer/array_serializer.rb, line 16 def meta data = super if @array.respond_to?(:total_count) data = {}.merge(data).merge({ :total_count => @array.total_count }) end data end
serializable_hash(options={})
click to toggle source
# File lib/scoped_serializer/array_serializer.rb, line 12 def serializable_hash(options={}) serializable_objects.collect(&:as_json) end
to_csv(options={})
click to toggle source
Returns attributes as a CSV string.
# File lib/scoped_serializer/array_serializer.rb, line 29 def to_csv(options={}) columns = options.delete(:columns) CSV.generate(options) do |csv| csv << columns if columns.present? serializable_objects.each do |object| csv << object.attributes_hash.values end end end
Protected Instance Methods
serializable_objects()
click to toggle source
# File lib/scoped_serializer/array_serializer.rb, line 43 def serializable_objects @serializable_objects ||= array.collect do |object| ScopedSerializer.for(object, @options.merge(:root => false, :serializer => @options[:each_serializer])) end end