From 32c5fa9694281b124de3a8346f37c3e8c0087121 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 2abeebce7..1f58ece5a 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -177,6 +177,10 @@ def json_key end end + def as_json + self.class.adapter.new(self).to_json + end + def id object.id if object end diff --git a/test/adapter_test.rb b/test/adapter_test.rb index d76559d55..14e9c1012 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 JSON.parse(@serializer.as_json), {"name" => nil, "description" => nil} + end end end end