diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-03-26 21:50:22 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-03-26 21:50:22 +0000 |
commit | 0c07e08d60ddfe4f6ed3aea66b6c4dc8f88e379a (patch) | |
tree | 5a61ca6d719c3b56513417274abda35fa5d99fbd | |
parent | 1886de8612ace10719d09902d550e1ac077325e5 (diff) | |
download | rails-0c07e08d60ddfe4f6ed3aea66b6c4dc8f88e379a.tar.gz rails-0c07e08d60ddfe4f6ed3aea66b6c4dc8f88e379a.tar.bz2 rails-0c07e08d60ddfe4f6ed3aea66b6c4dc8f88e379a.zip |
ActionView: Allow to register a Template handler with a Symbol (dont kill markaby) (closes #4328) [murphy@cYcnus.de]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4056 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/lib/action_view/base.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/custom_handler_test.rb | 8 |
2 files changed, 9 insertions, 1 deletions
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" ) |