aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-03-26 21:50:22 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-03-26 21:50:22 +0000
commit0c07e08d60ddfe4f6ed3aea66b6c4dc8f88e379a (patch)
tree5a61ca6d719c3b56513417274abda35fa5d99fbd
parent1886de8612ace10719d09902d550e1ac077325e5 (diff)
downloadrails-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.rb2
-rw-r--r--actionpack/test/controller/custom_handler_test.rb8
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" )