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