From 1879a338655aba393726de1fc5ba0d8cb4cb26d5 Mon Sep 17 00:00:00 2001 From: Daniel Schierbeck Date: Sun, 16 Dec 2012 23:38:46 +0100 Subject: Allow registering custom dependency trackers --- actionpack/lib/action_view/dependency_tracker.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_view/dependency_tracker.rb') diff --git a/actionpack/lib/action_view/dependency_tracker.rb b/actionpack/lib/action_view/dependency_tracker.rb index 1e31185c26..946a8f0fd1 100644 --- a/actionpack/lib/action_view/dependency_tracker.rb +++ b/actionpack/lib/action_view/dependency_tracker.rb @@ -1,7 +1,18 @@ module ActionView class DependencyTracker + @trackers = Hash.new + def self.find_dependencies(name, template) - ErbTracker.call(name, template) + handler = template.handler + @trackers.fetch(handler).call(name, template) + end + + def self.register_tracker(handler, tracker) + @trackers[handler] = tracker + end + + def self.remove_tracker(handler) + @trackers.delete(handler) end class ErbTracker @@ -62,5 +73,7 @@ module ActionView template.source.scan(EXPLICIT_DEPENDENCY).flatten.uniq end end + + register_tracker Template::Handlers::ERB, ErbTracker end end -- cgit v1.2.3