diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2014-07-25 16:35:16 -0700 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2014-07-25 16:37:18 -0700 |
commit | da1b8a786cad277c1e4dc1a9f03acec4268dda1f (patch) | |
tree | 0228b746dd5508fe48348fb0be2adbc71f3b5a37 /actionview/lib | |
parent | a851f13d305705521d4e661805f673a156b7765f (diff) | |
download | rails-da1b8a786cad277c1e4dc1a9f03acec4268dda1f.tar.gz rails-da1b8a786cad277c1e4dc1a9f03acec4268dda1f.tar.bz2 rails-da1b8a786cad277c1e4dc1a9f03acec4268dda1f.zip |
Fix that render layout should also be picked up by the template dependency tracker, but only half-ways. You can add that layout option on the same render call, and both templates should be added to the dependency tree. But thats going to require a more serious rework of the tracker. Please do help fix this part of it too. For now, render layout needs to be on its own line.
Diffstat (limited to 'actionview/lib')
-rw-r--r-- | actionview/lib/action_view/dependency_tracker.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/actionview/lib/action_view/dependency_tracker.rb b/actionview/lib/action_view/dependency_tracker.rb index 0ccf2515c5..e34bdd4a46 100644 --- a/actionview/lib/action_view/dependency_tracker.rb +++ b/actionview/lib/action_view/dependency_tracker.rb @@ -53,6 +53,12 @@ module ActionView \s* # followed by optional spaces /x + # Part of any hash containing the :layout key + LAYOUT_HASH_KEY = / + (?:\blayout:|:layout\s*=>) # layout key in either old or new style hash syntax + \s* # followed by optional spaces + /x + # Matches: # partial: "comments/comment", collection: @all_comments => "comments/comment" # (object: @single_comment, partial: "comments/comment") => "comments/comment" @@ -65,9 +71,9 @@ module ActionView # topics => "topics/topic" # (message.topics) => "topics/topic" RENDER_ARGUMENTS = /\A - (?:\s*\(?\s*) # optional opening paren surrounded by spaces - (?:.*?#{PARTIAL_HASH_KEY})? # optional hash, up to the partial key declaration - (?:#{STRING}|#{VARIABLE_OR_METHOD_CHAIN}) # finally, the dependency name of interest + (?:\s*\(?\s*) # optional opening paren surrounded by spaces + (?:.*?#{PARTIAL_HASH_KEY}|#{LAYOUT_HASH_KEY})? # optional hash, up to the partial or layout key declaration + (?:#{STRING}|#{VARIABLE_OR_METHOD_CHAIN}) # finally, the dependency name of interest /xm def self.call(name, template) @@ -85,8 +91,8 @@ module ActionView attr_reader :name, :template private :name, :template - private + private def source template.source end |