Permalink
Browse files

ActionView::PathSet# accepts String or Array

- Closes #6692

Signed-off-by: José Valim <jose.valim@gmail.com>
  • Loading branch information...
1 parent bd3b224 commit a26d407f6380493b39ad84e7f1b29899ead6a1f2 @dchelimsky dchelimsky committed with josevalim Apr 9, 2011
Showing with 30 additions and 0 deletions.
  1. +1 −0 actionpack/lib/action_view/path_set.rb
  2. +29 −0 actionpack/test/controller/view_paths_test.rb
@@ -15,6 +15,7 @@ def find(*args)
end
def find_all(path, prefixes = [], *args)
+ prefixes = [prefixes] if String === prefixes
prefixes.each do |prefix|
each do |resolver|
templates = resolver.find_all(path, prefix, *args)
@@ -131,6 +131,35 @@ def test_view_paths_override_at_request_time
assert_equal "Hello overridden world!", @response.body
end
+ def test_override_view_paths_with_custom_resolver
+ resolver_class = Class.new(ActionView::PathResolver) do
+ def initialize(path_set)
+ @path_set = path_set
+ end
+
+ def find_all(*args)
+ @path_set.find_all(*args).collect do |template|
+ ::ActionView::Template.new(
+ "Customized body",
+ template.identifier,
+ template.handler,
+ {
+ :virtual_path => template.virtual_path,
+ :format => template.formats
+ }
+ )
+ end
+ end
+ end
+
+ resolver = resolver_class.new(TestController.view_paths)
+ TestController.view_paths = ActionView::PathSet.new.push(resolver)
+
+ get :hello_world
+ assert_response :success
+ assert_equal "Customized body", @response.body
+ end
+
def test_inheritance
original_load_paths = ActionController::Base.view_paths

0 comments on commit a26d407

Please sign in to comment.