lib/ivy/serializers/documents/document.rb in ivy-serializers-0.2.0 vs lib/ivy/serializers/documents/document.rb in ivy-serializers-0.3.0
- old
+ new
@@ -6,49 +6,52 @@
class Document
def initialize(serializer, primary_resource_name, primary_resource)
@serializer = serializer
@primary_resource_name = primary_resource_name
@primary_resource = primary_resource
- @linked_resources = Hash.new { |hash, klass| hash[klass] = Set.new }
+ @included_resources = Hash.new { |hash, klass| hash[klass] = Set.new }
end
def belongs_to(name, resource, options={})
- link(resource) if options[:embed_in_root]
+ include_resource(resource) if resource && options[:embed_in_root]
end
def generate(generator)
generator.document(self)
end
- def generate_linked(generator)
- generator.linked(self) unless @linked_resources.empty?
+ def generate_attributes(generator, resource)
+ @serializer.attributes(generator, resource)
end
- def generate_linked_resources(generator)
- @linked_resources.each_pair { |klass, resources| generator.linked_resources(klass, resources) }
+ def generate_included(generator)
+ generator.included(self) unless @included_resources.empty?
end
- def generate_links(generator, resource)
- @serializer.links(generator, resource)
+ def generate_included_resources(generator)
+ @included_resources.each_pair { |klass, resources| generator.included_resources(klass, resources) }
end
+ def generate_relationships(generator, resource)
+ @serializer.relationships(generator, resource)
+ end
+
def generate_resource(generator, resource)
@serializer.resource(generator, resource)
- generator.links(resource)
end
def has_many(name, resources, options={})
- link_many(resources) if options[:embed_in_root]
+ include_resources(resources) if options[:embed_in_root]
end
private
- def link(resource)
- @serializer.links(self, resource) if @linked_resources[resource.class].add?(resource)
+ def include_resource(resource)
+ @serializer.relationships(self, resource) if @included_resources[resource.class].add?(resource)
end
- def link_many(resources)
- resources.each { |resource| link(resource) }
+ def include_resources(resources)
+ resources.each { |resource| include_resource(resource) }
end
end
end
end
end