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