From 77e0d06620724079caa88c5fdc5cc05e60cefe5a Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Mon, 6 May 2013 13:30:11 -0400 Subject: [PATCH] Accept an array of records --- lib/etagger.rb | 3 ++- test/etagger_test.rb | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/etagger.rb b/lib/etagger.rb index 56f39f3..0bdb76e 100644 --- a/lib/etagger.rb +++ b/lib/etagger.rb @@ -22,7 +22,8 @@ def fresh_when(record_or_options, additional_options = {}) private def revise_etag(options, additional_options = nil) if !options.is_a?(Hash) - revise_etag({ etag: options, last_modified: options.try(:updated_at) }.merge(additional_options)) + last_modified = options.respond_to?(:updated_at) ? options.updated_at : nil + revise_etag({ etag: options, last_modified: last_modified }.merge(additional_options)) elsif etag = options[:etag] etags = etaggers.map { |etagger| instance_exec &etagger }.compact options.merge etag: [etag, *etags] diff --git a/test/etagger_test.rb b/test/etagger_test.rb index 229ead0..0ecf148 100644 --- a/test/etagger_test.rb +++ b/test/etagger_test.rb @@ -29,4 +29,8 @@ def setup def test_revises_etag assert_equal ['123', 'ab', :cde, [:f]], @controller.fresh_when(etag: '123') end + + def test_updated_at_with_array + assert_equal [%w(1 2), 'ab', :cde, [:f]], @controller.fresh_when(%w(1 2)) + end end