From 577db3582477e76eee630cab98b71eb395a49da6 Mon Sep 17 00:00:00 2001 From: Nate Berkopec Date: Tue, 13 Jan 2015 17:12:02 -0500 Subject: [PATCH] Revert "Make sure `render json: ..., each_serializer: ...` is working with Enumerables" This reverts commit 90343cea4dcdd84abd1a86cf3175e26bd0b7ca81. --- lib/action_controller/serialization.rb | 2 +- lib/active_model/serializer.rb | 2 +- test/fixtures/poro.rb | 4 ---- .../action_controller/serialization_test.rb | 16 ---------------- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/lib/action_controller/serialization.rb b/lib/action_controller/serialization.rb index df23aa95..d8aaef9a 100644 --- a/lib/action_controller/serialization.rb +++ b/lib/action_controller/serialization.rb @@ -87,7 +87,7 @@ module ActionController if serializer = options.fetch(:serializer, default_serializer(resource)) options[:scope] = serialization_scope unless options.has_key?(:scope) - if resource.respond_to?(:each) + if resource.respond_to?(:to_ary) options[:resource_name] = controller_name options[:namespace] = namespace_for_serializer if namespace_for_serializer end diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 7a6ee7ca..cceba3f4 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -56,7 +56,7 @@ end attr_reader :key_format def serializer_for(resource, options = {}) - if resource.respond_to?(:each) + if resource.respond_to?(:to_ary) if Object.constants.include?(:ArraySerializer) ::ArraySerializer else diff --git a/test/fixtures/poro.rb b/test/fixtures/poro.rb index 73fc0463..26c8c7d0 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -100,10 +100,6 @@ class ProfileSerializer < ActiveModel::Serializer attributes :name, :description end -class DifferentProfileSerializer < ActiveModel::Serializer - attributes :name -end - class CategorySerializer < ActiveModel::Serializer attributes :name diff --git a/test/integration/action_controller/serialization_test.rb b/test/integration/action_controller/serialization_test.rb index f161de64..5d173606 100644 --- a/test/integration/action_controller/serialization_test.rb +++ b/test/integration/action_controller/serialization_test.rb @@ -283,21 +283,5 @@ module ActionController assert_equal("{\"my\":[{\"name\":\"Name 1\",\"email\":\"mail@server.com\",\"profile_id\":#{@controller.user.profile.object_id}}],\"profiles\":[{\"name\":\"N1\",\"description\":\"D1\"}]}", @response.body) end end - - class ExplicitEachSerializerWithEnumarableObjectTest < ActionController::TestCase - class MyController < ActionController::Base - def render_array - render json: [Profile.new({ name: 'Name 1', description: 'Description 1', comments: 'Comments 1' })].to_enum, each_serializer: DifferentProfileSerializer - end - end - - tests MyController - - def test_render_array - get :render_array - assert_equal 'application/json', @response.content_type - assert_equal '{"my":[{"name":"Name 1"}]}', @response.body - end - end end end