diff options
author | Daniel Schierbeck <dasch@zendesk.com> | 2012-12-16 23:38:46 +0100 |
---|---|---|
committer | Daniel Schierbeck <dasch@zendesk.com> | 2013-02-20 16:17:55 +0100 |
commit | 1879a338655aba393726de1fc5ba0d8cb4cb26d5 (patch) | |
tree | adba83cabd745885851a3d09faff8efee64e592a /actionpack/lib/action_view/dependency_tracker.rb | |
parent | 889bf198577fd914e2814b9e402b49f972cf9551 (diff) | |
download | rails-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.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 |