lib/yaks/format/hal.rb in yaks-0.6.0.alpha.1 vs lib/yaks/format/hal.rb in yaks-0.6.0
- old
+ new
@@ -31,11 +31,22 @@
# The HAL spec doesn't say explicitly how to deal missing values,
# looking at client behavior (Hyperagent) it seems safer to return an empty
# resource.
#
result = resource.attributes
- result = result.merge(:_links => serialize_links(resource.links)) unless resource.links.empty?
- result = result.merge(:_embedded => serialize_embedded(resource.subresources)) unless resource.subresources.empty?
+
+ if resource.links.any?
+ result = result.merge(_links: serialize_links(resource.links))
+ end
+
+ if resource.collection?
+ result = result.merge(_embedded:
+ serialize_embedded(resource.collection_rel => resource))
+ elsif resource.subresources.any?
+ result = result.merge(_embedded:
+ serialize_embedded(resource.subresources))
+ end
+
result
end
# @param [Array] links
# @return [Hash]