aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/dependency_tracker.rb
diff options
context:
space:
mode:
authorDaniel Schierbeck <dasch@zendesk.com>2012-12-16 23:38:46 +0100
committerDaniel Schierbeck <dasch@zendesk.com>2013-02-20 16:17:55 +0100
commit1879a338655aba393726de1fc5ba0d8cb4cb26d5 (patch)
treeadba83cabd745885851a3d09faff8efee64e592a /actionpack/lib/action_view/dependency_tracker.rb
parent889bf198577fd914e2814b9e402b49f972cf9551 (diff)
downloadrails-1879a338655aba393726de1fc5ba0d8cb4cb26d5.tar.gz
rails-1879a338655aba393726de1fc5ba0d8cb4cb26d5.tar.bz2
rails-1879a338655aba393726de1fc5ba0d8cb4cb26d5.zip
Allow registering custom dependency trackers
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