From d41e5ccef71475a74d9a844f29258eaaa4669820 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Tue, 2 Jul 2013 14:49:31 -0700 Subject: [PATCH] Implement SerializerSupport class --- lib/active_model/serializer_support.rb | 11 +++++++++++ .../active_model/serializer_support_test.rb | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 lib/active_model/serializer_support.rb create mode 100644 test/unit/active_model/serializer_support_test.rb diff --git a/lib/active_model/serializer_support.rb b/lib/active_model/serializer_support.rb new file mode 100644 index 00000000..ed53c89a --- /dev/null +++ b/lib/active_model/serializer_support.rb @@ -0,0 +1,11 @@ +require 'active_support/core_ext/string/inflections' + +module ActiveModel + module SerializerSupport + def active_model_serializer + "#{self.class.name}Serializer".safe_constantize + end + + alias read_attribute_for_serialization send + end +end diff --git a/test/unit/active_model/serializer_support_test.rb b/test/unit/active_model/serializer_support_test.rb new file mode 100644 index 00000000..2ea2e8ac --- /dev/null +++ b/test/unit/active_model/serializer_support_test.rb @@ -0,0 +1,19 @@ +require 'newbase/test_helper' +require 'newbase/active_model/serializer_support' + +module ActiveModel + module SerializerSupport + class Test < ActiveModel::TestCase + class Model + include ActiveModel::SerializerSupport + end + + class ModelSerializer < ActiveModel::Serializer + end + + def test_active_model_returns_its_serializer + assert_equal ModelSerializer, Model.new.active_model_serializer + end + end + end +end