aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/dependency_tracker.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_view/dependency_tracker.rb')
-rw-r--r--actionpack/lib/action_view/dependency_tracker.rb15
1 files changed, 14 insertions, 1 deletions
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