From 3315b01d0b5597a4590d5833f9b54b87b3baf1de Mon Sep 17 00:00:00 2001 From: Justin Aiken <60tonangel@gmail.com> Date: Mon, 27 Apr 2015 16:31:49 -0600 Subject: [PATCH] Add a #as_json method to the serializer base --- lib/active_model/serializer.rb | 4 ++++ test/adapter_test.rb | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 00eed5bc8..c378724b9 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -180,6 +180,10 @@ def json_key end end + def as_json + self.class.adapter.new(self).as_json + end + def id object.id if object end diff --git a/test/adapter_test.rb b/test/adapter_test.rb index d76559d55..c72e3638e 100644 --- a/test/adapter_test.rb +++ b/test/adapter_test.rb @@ -38,6 +38,10 @@ def test_create_adapter_with_override adapter = ActiveModel::Serializer::Adapter.create(@serializer, { adapter: :json_api}) assert_equal ActiveModel::Serializer::Adapter::JsonApi, adapter.class end + + def test_as_json_is_sent_to_adapter + assert_equal @serializer.as_json, {name: nil, description: nil} + end end end end