diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_view/dependency_tracker.rb | 15 |
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 |