From a6f9dae560dbb3639745efe8d787af4420f4d696 Mon Sep 17 00:00:00 2001 From: Tema Bolshakov Date: Wed, 27 Aug 2014 09:33:14 +0400 Subject: [PATCH] Concrete adapter should provide serializable hash for Adapter#to_json method --- lib/active_model/serializer/adapter.rb | 4 ++-- lib/active_model/serializer/adapter/null_adapter.rb | 4 ---- lib/active_model/serializer/adapter/simple_adapter.rb | 4 ---- test/adapter_test.rb | 6 ------ 4 files changed, 2 insertions(+), 16 deletions(-) diff --git a/lib/active_model/serializer/adapter.rb b/lib/active_model/serializer/adapter.rb index 345c788c..5c2b299e 100644 --- a/lib/active_model/serializer/adapter.rb +++ b/lib/active_model/serializer/adapter.rb @@ -15,8 +15,8 @@ module ActiveModel raise NotImplementedError, 'This is abstract method. Should be implemented at concrete adapter.' end - def to_json(options = {}) - raise NotImplementedError, 'This is abstract method. Should be implemented at concrete adapter.' + def to_json(options={}) + serializable_hash(options).to_json end def self.adapter_for(serializer) diff --git a/lib/active_model/serializer/adapter/null_adapter.rb b/lib/active_model/serializer/adapter/null_adapter.rb index 31b8d4ce..38dd0738 100644 --- a/lib/active_model/serializer/adapter/null_adapter.rb +++ b/lib/active_model/serializer/adapter/null_adapter.rb @@ -5,10 +5,6 @@ module ActiveModel def serializable_hash(options = {}) {} end - - def to_json(options = {}) - serializable_hash.to_json - end end end end diff --git a/lib/active_model/serializer/adapter/simple_adapter.rb b/lib/active_model/serializer/adapter/simple_adapter.rb index da397896..ebc22a87 100644 --- a/lib/active_model/serializer/adapter/simple_adapter.rb +++ b/lib/active_model/serializer/adapter/simple_adapter.rb @@ -7,10 +7,6 @@ module ActiveModel h[attr] = value end end - - def to_json(options={}) - serializable_hash(options).to_json - end end end end diff --git a/test/adapter_test.rb b/test/adapter_test.rb index fdc88e4b..e3d3eb82 100644 --- a/test/adapter_test.rb +++ b/test/adapter_test.rb @@ -15,12 +15,6 @@ module ActiveModel end end - def test_to_json_is_abstract_method - assert_raises(NotImplementedError) do - @adapter.to_json(only: [:name]) - end - end - def test_serializer assert_equal @serializer, @adapter.serializer end