diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index f4505e90ad..e8facbc360 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -168,7 +168,7 @@ module ActionView #:nodoc: @@debug_rjs = false cattr_accessor :debug_rjs - @@template_handlers = {} + @@template_handlers = HashWithIndifferentAccess.new module CompiledTemplates #:nodoc: # holds compiled template code diff --git a/actionpack/test/controller/custom_handler_test.rb b/actionpack/test/controller/custom_handler_test.rb index 8b9cdb0c26..2747a0f3ca 100644 --- a/actionpack/test/controller/custom_handler_test.rb +++ b/actionpack/test/controller/custom_handler_test.rb @@ -15,6 +15,7 @@ end class CustomHandlerTest < Test::Unit::TestCase def setup ActionView::Base.register_template_handler "foo", CustomHandler + ActionView::Base.register_template_handler :foo2, CustomHandler @view = ActionView::Base.new end @@ -25,6 +26,13 @@ class CustomHandlerTest < Test::Unit::TestCase result ) end + def test_custom_render2 + result = @view.render_template( "foo2", "hello <%= one %>", nil, :one => "two" ) + assert_equal( + [ "hello <%= one %>", { :one => "two" }, @view ], + result ) + end + def test_unhandled_extension # uses the ERb handler by default if the extension isn't recognized result = @view.render_template( "bar", "hello <%= one %>", nil, :one => "two" )