提交 44528490 编写于 作者: D Daniel Schierbeck

Return an empty array if no tracker is found

上级 9ca8c635
...@@ -5,8 +5,13 @@ class DependencyTracker ...@@ -5,8 +5,13 @@ class DependencyTracker
@trackers = ThreadSafe::Cache.new @trackers = ThreadSafe::Cache.new
def self.find_dependencies(name, template) def self.find_dependencies(name, template)
handler = template.handler tracker = @trackers[template.handler]
@trackers.fetch(handler).call(name, template)
if tracker.present?
tracker.call(name, template)
else
[]
end
end end
def self.register_tracker(handler, tracker) def self.register_tracker(handler, tracker)
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
class DependencyTrackerTest < ActionView::TestCase class DependencyTrackerTest < ActionView::TestCase
Neckbeard = Class.new Neckbeard = Class.new
Bowtie = Class.new
class NeckbeardTracker class NeckbeardTracker
def self.call(name, template) def self.call(name, template)
...@@ -13,8 +14,8 @@ def self.call(name, template) ...@@ -13,8 +14,8 @@ def self.call(name, template)
class FakeTemplate class FakeTemplate
attr_reader :source, :handler attr_reader :source, :handler
def initialize(source) def initialize(source, handler = Neckbeard)
@source, @handler = source, Neckbeard @source, @handler = source, handler
end end
end end
...@@ -35,4 +36,10 @@ def test_finds_tracker_by_template_handler ...@@ -35,4 +36,10 @@ def test_finds_tracker_by_template_handler
dependencies = tracker.find_dependencies("boo/hoo", template) dependencies = tracker.find_dependencies("boo/hoo", template)
assert_equal ["foo/boo/hoo"], dependencies assert_equal ["foo/boo/hoo"], dependencies
end end
def test_returns_empty_array_if_no_tracker_is_found
template = FakeTemplate.new("boo/hoo", Bowtie)
dependencies = tracker.find_dependencies("boo/hoo", template)
assert_equal [], dependencies
end
end end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册