Sha256: 86aaa0c5ef8fe3c5bda6225c81f6606d7d2f2f76f17749bc2fe50e4b1c27a9e6
Contents?: true
Size: 834 Bytes
Versions: 1
Compression:
Stored size: 834 Bytes
Contents
# Add a formatter to grape that converts all snake case hash keys from ruby to camel case. require 'camel_snake_keys' require 'grape/formatter/json' module IntrospectiveGrape module Formatter module CamelJson def self.call(object, _env) if object.respond_to?(:to_json) && !object.respond_to?(:with_camel_keys) && (parsed_object = JSON.parse(object.to_json)).respond_to?(:with_camel_keys) object = parsed_object elsif object.kind_of?(Array) && object.first.kind_of?(Grape::Entity) # Force arrays of Grape::Entities into their hash representations before camelizing object = JSON.parse(object.to_json) end object = object.with_camel_keys if object.respond_to?(:with_camel_keys) Grape::Formatter::Json.call(object, _env) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
introspective_grape-0.3.2 | lib/introspective_grape/formatter/camel_json.rb |