Permalink
Browse files

Merge pull request #10841 from latortuga/fix-underscore-dependency-tr…

…acking

Fix mismatching variable names when using an underscore
  • Loading branch information...
2 parents bc8f802 + 2a576dd commit 95296f1a7a2ae0490546c0d3010fc435558911c8 @dhh dhh committed Jun 4, 2013
@@ -74,7 +74,7 @@ def render_dependencies
# render(@topic) => render("topics/topic")
# render(topics) => render("topics/topic")
# render(message.topics) => render("topics/topic")
- collect { |name| name.sub(/\A@?([a-z]+\.)*([a-z_]+)\z/) { "#{$2.pluralize}/#{$2.singularize}" } }.
+ collect { |name| name.sub(/\A@?([a-z_]+\.)*([a-z_]+)\z/) { "#{$2.pluralize}/#{$2.singularize}" } }.
# render("headline") => render("message/headline")
collect { |name| name.include?("/") ? name : "#{directory}/#{name}" }.
@@ -1,24 +1,24 @@
require 'abstract_unit'
require 'action_view/dependency_tracker'
-class DependencyTrackerTest < ActionView::TestCase
- Neckbeard = lambda {|template| template.source }
- Bowtie = lambda {|template| template.source }
-
- class NeckbeardTracker
- def self.call(name, template)
- ["foo/#{name}"]
- end
+class NeckbeardTracker
+ def self.call(name, template)
+ ["foo/#{name}"]
end
+end
- class FakeTemplate
- attr_reader :source, :handler
+class FakeTemplate
+ attr_reader :source, :handler
- def initialize(source, handler = Neckbeard)
- @source, @handler = source, handler
- end
+ def initialize(source, handler = Neckbeard)
+ @source, @handler = source, handler
end
+end
+
+Neckbeard = lambda {|template| template.source }
+Bowtie = lambda {|template| template.source }
+class DependencyTrackerTest < ActionView::TestCase
def tracker
ActionView::DependencyTracker
end
@@ -44,3 +44,31 @@ def test_returns_empty_array_if_no_tracker_is_found
assert_equal [], dependencies
end
end
+
+class ERBTrackerTest < MiniTest::Unit::TestCase
+ def make_tracker(name, template)
+ ActionView::DependencyTracker::ERBTracker.new(name, template)
+ end
+
+ def test_dependency_of_erb_template_with_number_in_filename
+ template = FakeTemplate.new("<%# render 'messages/message123' %>", :erb)
+ tracker = make_tracker('messages/_message123', template)
+
+ assert_equal ["messages/message123"], tracker.dependencies
+ end
+
+ def test_finds_dependency_in_correct_directory
+ template = FakeTemplate.new("<%# render(message.topic) %>", :erb)
+ tracker = make_tracker('messages/_message', template)
+
+ assert_equal ["topics/topic"], tracker.dependencies
+ end
+
+ def test_finds_dependency_in_correct_directory_with_underscore
+ template = FakeTemplate.new("<%# render(message_type.messages) %>", :erb)
+ tracker = make_tracker('message_types/_message_type', template)
+
+ assert_equal ["messages/message"], tracker.dependencies
+ end
+end
+

0 comments on commit 95296f1

Please sign in to comment.