Bring back compat with ActiveModel::Serializers

The current AMS re-write (which will debut as v0.9.0) has changed how
serializers are resovled, and removed the ArraySerializerSupport module.
This change will ensure Draper properly integrates with both AMS
pre-0.9.0, and the future.
This commit is contained in:
Steven Harman 2014-01-08 17:00:36 -05:00
parent 724e735a03
commit f38d8c9abf
2 changed files with 9 additions and 2 deletions

View File

@ -45,7 +45,9 @@ module Draper
initializer "draper.setup_active_model_serializers" do |app|
ActiveSupport.on_load :active_model_serializers do
Draper::CollectionDecorator.send :include, ActiveModel::ArraySerializerSupport
if defined?(ActiveModel::ArraySerializerSupport)
Draper::CollectionDecorator.send :include, ActiveModel::ArraySerializerSupport
end
end
end

View File

@ -4,8 +4,13 @@ describe Draper::CollectionDecorator do
describe "#active_model_serializer" do
it "returns ActiveModel::ArraySerializer" do
collection_decorator = Draper::CollectionDecorator.new([])
if defined?(ActiveModel::ArraySerializerSupport)
collection_serializer = collection_decorator.active_model_serializer
else
collection_serializer = ActiveModel::Serializer.serializer_for(collection_decorator)
end
expect(collection_decorator.active_model_serializer).to be ActiveModel::ArraySerializer
expect(collection_serializer).to be ActiveModel::ArraySerializer
end
end
end