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