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]