From 3c516c4b5278c27d55425f7c2f875ca1cd2e8511 Mon Sep 17 00:00:00 2001
From: Bryan Ricker <bricker88@gmail.com>
Date: Mon, 29 Apr 2013 15:42:16 -0700
Subject: Allow numbers in partial name for digesting

Add failing test for template with number at the end

Use \w for RENDER_DEPENDENCY regex

Spacing

Add CHANGELOG entry
---
 actionpack/CHANGELOG.md                                  | 4 +++-
 actionpack/lib/action_view/dependency_tracker.rb         | 2 +-
 actionpack/test/fixtures/digestor/messages/show.html.erb | 3 ++-
 actionpack/test/template/digestor_test.rb                | 6 ++++++
 4 files changed, 12 insertions(+), 3 deletions(-)

(limited to 'actionpack')

diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index ffafa7412d..6f5027dc23 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,5 @@
-* No changes.
+*   Fix an issue where partials with a number in the filename weren't being digested for cache dependencies.
+
+    *Bryan Ricker*
 
 Please check [4-0-stable](https://github.com/rails/rails/blob/4-0-stable/actionpack/CHANGELOG.md) for previous changes.
diff --git a/actionpack/lib/action_view/dependency_tracker.rb b/actionpack/lib/action_view/dependency_tracker.rb
index a2a555dfcb..45d17be605 100644
--- a/actionpack/lib/action_view/dependency_tracker.rb
+++ b/actionpack/lib/action_view/dependency_tracker.rb
@@ -39,7 +39,7 @@ module ActionView
         render\s*                     # render, followed by optional whitespace
         \(?                           # start an optional parenthesis for the render call
         (partial:|:partial\s+=>)?\s*  # naming the partial, used with collection -- 1st capture
-        ([@a-z"'][@a-z_\/\."']+)      # the template name itself -- 2nd capture
+        ([@a-z"'][@\w\/\."']+)        # the template name itself -- 2nd capture
       /x
 
       def self.call(name, template)
diff --git a/actionpack/test/fixtures/digestor/messages/show.html.erb b/actionpack/test/fixtures/digestor/messages/show.html.erb
index 51b3b61e8e..130e67109e 100644
--- a/actionpack/test/fixtures/digestor/messages/show.html.erb
+++ b/actionpack/test/fixtures/digestor/messages/show.html.erb
@@ -7,7 +7,8 @@
 <%= render @message.history.events %>
 
 <%# render "something_missing"  %>
+<%# render "something_missing_1"  %>
 
 <%
   # Template Dependency: messages/form
-%>
\ No newline at end of file
+%>
diff --git a/actionpack/test/template/digestor_test.rb b/actionpack/test/template/digestor_test.rb
index e29cecabc0..06735c30d3 100644
--- a/actionpack/test/template/digestor_test.rb
+++ b/actionpack/test/template/digestor_test.rb
@@ -83,6 +83,12 @@ class TemplateDigestorTest < ActionView::TestCase
     end
   end
 
+  def test_logging_of_missing_template_ending_with_number
+    assert_logged "Couldn't find template for digesting: messages/something_missing_1.html" do
+      digest("messages/show")
+    end
+  end
+
   def test_nested_template_directory
     assert_digest_difference("messages/show") do
       change_template("messages/actions/_move")
-- 
cgit v1.2.3