aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorNick Sutterer <apotonick@gmail.com>2011-09-22 23:51:44 +0200
committerJosé Valim <jose.valim@gmail.com>2011-09-23 00:36:14 +0200
commit2e3eb2560b7686a633d6de35c4cd9131504aee38 (patch)
treed9d77ff6e83258279d8a2619257a9aa455aaa4b9 /actionpack
parentf8e6664d8647acf11c8f98e00ec5a23326be5d19 (diff)
downloadrails-2e3eb2560b7686a633d6de35c4cd9131504aee38.tar.gz
rails-2e3eb2560b7686a633d6de35c4cd9131504aee38.tar.bz2
rails-2e3eb2560b7686a633d6de35c4cd9131504aee38.zip
Allow both sym and array for details options in #render. using LC#registered_details to extract options.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_view/renderer/abstract_renderer.rb13
-rw-r--r--actionpack/lib/action_view/renderer/template_renderer.rb2
-rw-r--r--actionpack/test/template/render_test.rb3
3 files changed, 16 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/renderer/abstract_renderer.rb b/actionpack/lib/action_view/renderer/abstract_renderer.rb
index 1656cf7ec7..03feeff16c 100644
--- a/actionpack/lib/action_view/renderer/abstract_renderer.rb
+++ b/actionpack/lib/action_view/renderer/abstract_renderer.rb
@@ -12,7 +12,18 @@ module ActionView
end
protected
-
+
+ def extract_details(options)
+ details = {}
+ @lookup_context.registered_details.each do |key|
+ next unless value = options[key]
+ details[key] = Array.wrap(value)
+ end
+ details
+ end
+
+
+
def extract_format(value, details)
if value.is_a?(String) && value.sub!(formats_regexp, "")
ActiveSupport::Deprecation.warn "Passing the format in the template name is deprecated. " \
diff --git a/actionpack/lib/action_view/renderer/template_renderer.rb b/actionpack/lib/action_view/renderer/template_renderer.rb
index f3e7378f2b..ac91d333ba 100644
--- a/actionpack/lib/action_view/renderer/template_renderer.rb
+++ b/actionpack/lib/action_view/renderer/template_renderer.rb
@@ -5,7 +5,7 @@ module ActionView
class TemplateRenderer < AbstractRenderer #:nodoc:
def render(context, options)
@view = context
- @details = options.slice(:formats, :locale, :handlers)
+ @details = extract_details(options)
extract_format(options[:file] || options[:template], @details)
template = determine_template(options)
freeze_formats(template.formats, true)
diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb
index 634e1cdd9f..5637f3f42e 100644
--- a/actionpack/test/template/render_test.rb
+++ b/actionpack/test/template/render_test.rb
@@ -36,6 +36,7 @@ module RenderTestCases
def test_render_file_with_format
assert_equal "<h1>No Comment</h1>", @view.render(:file => "comments/empty", :formats => [:html])
assert_equal "<error>No Comment</error>", @view.render(:file => "comments/empty", :formats => [:xml])
+ assert_equal "<error>No Comment</error>", @view.render(:file => "comments/empty", :formats => :xml)
end
def test_render_template_with_format
@@ -45,6 +46,7 @@ module RenderTestCases
def test_render_file_with_locale
assert_equal "<h1>Kein Kommentar</h1>", @view.render(:file => "comments/empty", :locale => [:de])
+ assert_equal "<h1>Kein Kommentar</h1>", @view.render(:file => "comments/empty", :locale => :de)
end
def test_render_template_with_locale
@@ -53,6 +55,7 @@ module RenderTestCases
def test_render_file_with_handlers
assert_equal "<h1>No Comment</h1>\n", @view.render(:file => "comments/empty", :handlers => [:builder])
+ assert_equal "<h1>No Comment</h1>\n", @view.render(:file => "comments/empty", :handlers => :builder)
end
def test_render_template_with_handlers