lib/grape/formatter/serializable_hash.rb in grape-1.7.1 vs lib/grape/formatter/serializable_hash.rb in grape-1.8.0

- old
+ new

@@ -13,26 +13,26 @@ end private def serializable?(object) - object.respond_to?(:serializable_hash) || (object.is_a?(Array) && object.all? { |o| o.respond_to? :serializable_hash }) || object.is_a?(Hash) + object.respond_to?(:serializable_hash) || array_serializable?(object) || object.is_a?(Hash) end def serialize(object) if object.respond_to? :serializable_hash object.serializable_hash - elsif object.is_a?(Array) && object.all? { |o| o.respond_to? :serializable_hash } + elsif array_serializable?(object) object.map(&:serializable_hash) elsif object.is_a?(Hash) - h = {} - object.each_pair do |k, v| - h[k] = serialize(v) - end - h + object.transform_values { |v| serialize(v) } else object end + end + + def array_serializable?(object) + object.is_a?(Array) && object.all? { |o| o.respond_to? :serializable_hash } end end end end end