class Grape::Formatter::SerializableHash
Public Class Methods
Source
# File lib/grape/formatter/serializable_hash.rb, line 7 def call(object, _env) return object if object.is_a?(String) return ::Grape::Json.dump(serialize(object)) if serializable?(object) return object.to_json if object.respond_to?(:to_json) ::Grape::Json.dump(object) end
Private Class Methods
Source
# File lib/grape/formatter/serializable_hash.rb, line 33 def array_serializable?(object) object.is_a?(Array) && object.all? { |o| o.respond_to? :serializable_hash } end
Source
# File lib/grape/formatter/serializable_hash.rb, line 17 def serializable?(object) object.respond_to?(:serializable_hash) || array_serializable?(object) || object.is_a?(Hash) end
Source
# File lib/grape/formatter/serializable_hash.rb, line 21 def serialize(object) if object.respond_to? :serializable_hash object.serializable_hash elsif array_serializable?(object) object.map(&:serializable_hash) elsif object.is_a?(Hash) object.transform_values { |v| serialize(v) } else object end end