aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/abstract_controller
diff options
context:
space:
mode:
authorYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-09-03 12:41:28 -0700
committerYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-09-03 12:52:53 -0700
commite3744166ec0b98b76175ee70bda8051fb05690e7 (patch)
tree26246e2a6f409fa4a1912479e2290803c212c4eb /actionpack/lib/abstract_controller
parent4b6321efa9be103ca1e00c13dd9d955b076dd31e (diff)
downloadrails-e3744166ec0b98b76175ee70bda8051fb05690e7.tar.gz
rails-e3744166ec0b98b76175ee70bda8051fb05690e7.tar.bz2
rails-e3744166ec0b98b76175ee70bda8051fb05690e7.zip
Refactor ActionController to use find_template and template_exists?
Diffstat (limited to 'actionpack/lib/abstract_controller')
-rw-r--r--actionpack/lib/abstract_controller/layouts.rb10
-rw-r--r--actionpack/lib/abstract_controller/rendering_controller.rb6
2 files changed, 10 insertions, 6 deletions
diff --git a/actionpack/lib/abstract_controller/layouts.rb b/actionpack/lib/abstract_controller/layouts.rb
index ef66b24dd6..796ef40584 100644
--- a/actionpack/lib/abstract_controller/layouts.rb
+++ b/actionpack/lib/abstract_controller/layouts.rb
@@ -119,17 +119,17 @@ module AbstractController
when true
raise ArgumentError, "Layouts must be specified as a String, Symbol, false, or nil"
when nil
- self.class_eval <<-ruby_eval, __FILE__, __LINE__ + 1
+ self.class_eval <<-RUBY, __FILE__, __LINE__ + 1
def _layout(details)
self.class.cache_layout(details) do
- if view_paths.exists?("#{_implied_layout_name}", details, "layouts")
+ if template_exists?("#{_implied_layout_name}", details, :_prefix => "layouts")
"#{_implied_layout_name}"
else
super
end
end
end
- ruby_eval
+ RUBY
end
self.class_eval { private :_layout }
end
@@ -167,7 +167,7 @@ module AbstractController
# details<Hash{Symbol => Object}>:: A list of details to restrict
# the lookup to. By default, layout lookup is limited to the
# formats specified for the current request.
- def _layout_for_name(name, details = {:formats => formats})
+ def _layout_for_name(name, details)
name && _find_layout(name, details)
end
@@ -183,7 +183,7 @@ module AbstractController
def _find_layout(name, details)
# TODO: Make prefix actually part of details in ViewPath#find_by_parts
prefix = details.key?(:prefix) ? details.delete(:prefix) : "layouts"
- view_paths.find(name, details, prefix)
+ find_template(name, details, :_prefix => prefix)
end
# Returns the default layout for this controller and a given set of details.
diff --git a/actionpack/lib/abstract_controller/rendering_controller.rb b/actionpack/lib/abstract_controller/rendering_controller.rb
index c23b1a9aa7..bbf941aa32 100644
--- a/actionpack/lib/abstract_controller/rendering_controller.rb
+++ b/actionpack/lib/abstract_controller/rendering_controller.rb
@@ -119,7 +119,11 @@ module AbstractController
def find_template(name, details, options)
view_paths.find(name, details, options[:_prefix], options[:_partial])
end
-
+
+ def template_exists?(name, details, options)
+ view_paths.exists?(name, details, options[:_prefix], options[:_partial])
+ end
+
def with_template_cache(name)
yield
end