From 5932da64efacc60b986a967d8dd465a0039654d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Sat, 13 Jun 2015 15:02:11 -0300 Subject: [PATCH] creating flatten_json adapter --- lib/active_model/serializer/adapter.rb | 2 +- .../serializer/adapter/flatten_json.rb | 18 ++++++++++++++++++ lib/active_model/serializer/adapter/json.rb | 6 +----- 3 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 lib/active_model/serializer/adapter/flatten_json.rb diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index b8e6bbcd..ca1995fd 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -82,7 +82,7 @@ module ActiveModel end def root - @options.fetch(:root) { serializer.json_key } + serializer.json_key end def include_meta(json) diff --git a/lib/active_model/serializer/adapter/flatten_json.rb b/lib/active_model/serializer/adapter/flatten_json.rb new file mode 100644 index 00000000..bbcd023a --- /dev/null +++ b/lib/active_model/serializer/adapter/flatten_json.rb @@ -0,0 +1,18 @@ +require 'active_model/serializer/adapter/json/fragment_cache' + +module ActiveModel + class Serializer + class Adapter + class FlattenJson < Json + def serializable_hash(options = {}) + super + @result + end + end + + def fragment_cache(cached_hash, non_cached_hash) + Json::FragmentCache.new().fragment_cache(cached_hash, non_cached_hash) + end + end + end +end diff --git a/lib/active_model/serializer/adapter/json.rb b/lib/active_model/serializer/adapter/json.rb index 88c49d6c..ebd021d5 100644 --- a/lib/active_model/serializer/adapter/json.rb +++ b/lib/active_model/serializer/adapter/json.rb @@ -37,11 +37,7 @@ module ActiveModel @result = @core.merge @hash end - if root - @result = { root => @result } - else - @result - end + { root => @result } end end