From 5706e7d7fe2d326edf486d28d2fa99fc508972ad Mon Sep 17 00:00:00 2001 From: Rodrigo Ra Date: Wed, 7 Oct 2015 00:34:21 -0300 Subject: [PATCH 1/2] serializer inherits cache configuration --- lib/active_model/serializer.rb | 17 ++++++++++------- test/serializers/cache_test.rb | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 643167a7..0d6eae75 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -30,13 +30,16 @@ module ActiveModel class << self attr_accessor :_attributes attr_accessor :_attributes_keys - attr_accessor :_cache - attr_accessor :_fragmented - attr_accessor :_cache_key - attr_accessor :_cache_only - attr_accessor :_cache_except - attr_accessor :_cache_options - attr_accessor :_cache_digest + end + + with_options instance_writer: false, instance_reader: false do |serializer| + serializer.class_attribute :_cache + serializer.class_attribute :_fragmented + serializer.class_attribute :_cache_key + serializer.class_attribute :_cache_only + serializer.class_attribute :_cache_except + serializer.class_attribute :_cache_options + serializer.class_attribute :_cache_digest end def self.inherited(base) diff --git a/test/serializers/cache_test.rb b/test/serializers/cache_test.rb index 5b7a665d..86b6a002 100644 --- a/test/serializers/cache_test.rb +++ b/test/serializers/cache_test.rb @@ -34,6 +34,22 @@ module ActiveModel @blog_serializer = BlogSerializer.new(@blog) end + def test_inherited_cache_configuration + inherited_serializer = Class.new(PostSerializer) + + assert_equal PostSerializer._cache_key, inherited_serializer._cache_key + assert_equal PostSerializer._cache_options, inherited_serializer._cache_options + end + + def test_override_cache_configuration + inherited_serializer = Class.new(PostSerializer) do + cache key: 'new-key' + end + + assert PostSerializer._cache_key == 'post' + assert inherited_serializer._cache_key == 'new-key' + end + def test_cache_definition assert_equal(ActionController::Base.cache_store, @post_serializer.class._cache) assert_equal(ActionController::Base.cache_store, @author_serializer.class._cache) From 659e31b5195ce515f3dbc66df599ea270159c71d Mon Sep 17 00:00:00 2001 From: Benjamin Fleischer Date: Wed, 7 Oct 2015 05:59:43 -0500 Subject: [PATCH 2/2] Change assert to assert_equal --- test/serializers/cache_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/serializers/cache_test.rb b/test/serializers/cache_test.rb index 86b6a002..374e1f61 100644 --- a/test/serializers/cache_test.rb +++ b/test/serializers/cache_test.rb @@ -46,8 +46,8 @@ module ActiveModel cache key: 'new-key' end - assert PostSerializer._cache_key == 'post' - assert inherited_serializer._cache_key == 'new-key' + assert_equal PostSerializer._cache_key, 'post' + assert_equal inherited_serializer._cache_key, 'new-key' end def test_cache_definition