Allow serialization of CollectionDecorators with ActiveModel::Serializers

Closes #471
This commit is contained in:
Andrew Haines 2013-02-12 18:35:32 +00:00
parent 7802d97446
commit 4c6a182b1d
4 changed files with 21 additions and 2 deletions

View File

@ -10,7 +10,8 @@ Gem::Specification.new do |s|
s.homepage = "http://github.com/drapergem/draper"
s.summary = "View Models for Rails"
s.description = "Draper adds an object-oriented layer of presentation logic to your Rails apps."
s.rubyforge_project = "draper"
s.license = "MIT"
s.files = `git ls-files`.split("\n")
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
@ -27,5 +28,5 @@ Gem::Specification.new do |s|
s.add_development_dependency 'rspec-rails', '~> 2.12'
s.add_development_dependency 'minitest-rails', '~> 0.2'
s.add_development_dependency 'capybara'
s.license = "MIT"
s.add_development_dependency 'active_model_serializers'
end

View File

@ -44,6 +44,12 @@ module Draper
end
end
initializer "draper.setup_active_model_serializers" do |app|
ActiveSupport.on_load :active_model_serializers do
Draper::CollectionDecorator.send :include, ActiveModel::ArraySerializerSupport
end
end
console do
require 'action_controller/test_case'
ApplicationController.new.view_context

View File

@ -9,6 +9,7 @@ require 'rails/all'
require 'draper'
attempt_require 'mongoid'
attempt_require 'devise'
require 'active_model_serializers'
module Dummy
class Application < Rails::Application

View File

@ -0,0 +1,11 @@
require 'spec_helper'
describe Draper::CollectionDecorator do
describe "#active_model_serializer" do
it "returns ActiveModel::ArraySerializer" do
collection_decorator = Draper::CollectionDecorator.new([])
expect(collection_decorator.active_model_serializer).to be ActiveModel::ArraySerializer
end
end
end