class AdequateSerializer::Collection

Attributes

collection[RW]
collection_options[RW]
root[RW]

Public Class Methods

new(collection, options = {}) click to toggle source
# File lib/adequate_serializer/collection.rb, line 10
def initialize(collection, options = {})
  @collection = collection
  @root = options.delete(:root)
  @collection_options = options
  @collection_options[:root] = false
end

Public Instance Methods

as_json(options = {}) click to toggle source
# File lib/adequate_serializer/collection.rb, line 17
def as_json(options = {})
  data = collection.map { |item| serialize(item, collection_options) }

  if root == false
    data
  else
    { root_name => data }
  end
end

Private Instance Methods

build_root() click to toggle source
# File lib/adequate_serializer/collection.rb, line 33
def build_root
  if collection.respond_to?(:klass)
    klass = collection.klass
  else
    klass = collection.first.class
  end

  klass == NilClass ? 'nil' : klass.name.underscore.parameterize.pluralize
end
root_name() click to toggle source
# File lib/adequate_serializer/collection.rb, line 29
def root_name
  (root || build_root).to_sym
end