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

Return an empty array if no tracker is found

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