class Ivy::Serializers::Documents::Document

Public Class Methods

new(serializer, primary_resource_name, primary_resource) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 7
def initialize(serializer, primary_resource_name, primary_resource)
  @serializer = serializer
  @primary_resource_name = primary_resource_name
  @primary_resource = primary_resource
  @included_resources = Hash.new { |hash, klass| hash[klass] = Set.new }
end

Public Instance Methods

belongs_to(name, resource, options={}) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 14
def belongs_to(name, resource, options={})
  include_resource(resource) if resource && options[:embed_in_root]
end
generate(generator) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 18
def generate(generator)
  generator.document(self)
end
generate_attributes(generator, resource) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 22
def generate_attributes(generator, resource)
  @serializer.attributes(generator, resource)
end
generate_included(generator) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 26
def generate_included(generator)
  generator.included(self) unless @included_resources.empty?
end
generate_included_resources(generator) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 30
def generate_included_resources(generator)
  generator.included_resources(@included_resources)
end
generate_relationships(generator, resource) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 34
def generate_relationships(generator, resource)
  @serializer.relationships(generator, resource)
end
generate_resource(generator, resource) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 38
def generate_resource(generator, resource)
  @serializer.resource(generator, resource)
end
has_many(name, resources, options={}) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 42
def has_many(name, resources, options={})
  include_resources(resources) if options[:embed_in_root]
end

Private Instance Methods

include_resource(resource) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 48
def include_resource(resource)
  @serializer.relationships(self, resource) if @included_resources[resource.class].add?(resource)
end
include_resources(resources) click to toggle source
# File lib/ivy/serializers/documents/document.rb, line 52
def include_resources(resources)
  resources.each { |resource| include_resource(resource) }
end