From 156039c4cf7f0e0ad697443b121b46d3fe57d801 Mon Sep 17 00:00:00 2001 From: Burke Libbey Date: Fri, 6 May 2011 14:02:31 -0500 Subject: [PATCH] Added a test for MissingTemplate change, and changed to use Array.wrap() as requested by josevalim. --- actionpack/lib/action_view/path_set.rb | 2 +- actionpack/lib/action_view/template/error.rb | 2 +- actionpack/test/template/lookup_context_test.rb | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_view/path_set.rb b/actionpack/lib/action_view/path_set.rb index 8b840a6463a38..1e38b82852bde 100644 --- a/actionpack/lib/action_view/path_set.rb +++ b/actionpack/lib/action_view/path_set.rb @@ -15,7 +15,7 @@ def find(*args) end def find_all(path, prefixes = [], *args) - prefixes = [prefixes] if String === prefixes + prefixes = Array.wrap(prefixes) if String === prefixes prefixes.each do |prefix| each do |resolver| templates = resolver.find_all(path, prefix, *args) diff --git a/actionpack/lib/action_view/template/error.rb b/actionpack/lib/action_view/template/error.rb index fa7a620daa71a..6eec0cc23d20d 100644 --- a/actionpack/lib/action_view/template/error.rb +++ b/actionpack/lib/action_view/template/error.rb @@ -29,7 +29,7 @@ class MissingTemplate < ActionViewError #:nodoc: def initialize(paths, path, prefixes, partial, details, *) @path = path - prefixes = [prefixes] if String === prefixes + prefixes = Array.wrap(prefixes) if String === prefixes display_paths = paths.compact.map{ |p| p.to_s.inspect }.join(", ") template_type = if partial "partial" diff --git a/actionpack/test/template/lookup_context_test.rb b/actionpack/test/template/lookup_context_test.rb index 5fb1fdc044c5e..94af97ee11d74 100644 --- a/actionpack/test/template/lookup_context_test.rb +++ b/actionpack/test/template/lookup_context_test.rb @@ -251,4 +251,13 @@ def setup end assert_match %r{Missing partial parent/foo, child/foo with .* Searched in:\n \* "/Path/to/views"\n}, e.message end + + test "if a single prefix is passed as a string and the lookup fails, MissingTemplate accepts it" do + e = assert_raise ActionView::MissingTemplate do + details = {:handlers=>[], :formats=>[], :locale=>[]} + @lookup_context.view_paths.find("foo", "parent", true, details) + end + assert_match %r{Missing partial parent/foo with .* Searched in:\n \* "/Path/to/views"\n}, e.message + end + end