diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-06-06 17:59:41 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-06-06 17:59:41 -0700 |
commit | e732a405ab7d0d04f8a254764970c9dcda988f01 (patch) | |
tree | 3a245fbccbde5601965e244f3d966f31287c43b1 /actionpack | |
parent | fec0f0678bef93f98cf1204bb007d109bbe97c37 (diff) | |
download | rails-e732a405ab7d0d04f8a254764970c9dcda988f01.tar.gz rails-e732a405ab7d0d04f8a254764970c9dcda988f01.tar.bz2 rails-e732a405ab7d0d04f8a254764970c9dcda988f01.zip |
javascript_tag should only concat when block_given?
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/javascript_helper.rb | 17 | ||||
-rw-r--r-- | actionpack/test/template/javascript_helper_test.rb | 4 |
2 files changed, 14 insertions, 7 deletions
diff --git a/actionpack/lib/action_view/helpers/javascript_helper.rb b/actionpack/lib/action_view/helpers/javascript_helper.rb index a2f2577636..85b205c264 100644 --- a/actionpack/lib/action_view/helpers/javascript_helper.rb +++ b/actionpack/lib/action_view/helpers/javascript_helper.rb @@ -172,14 +172,17 @@ module ActionView # alert('All is good') # <% end -%> def javascript_tag(content_or_options_with_block = nil, html_options = {}, &block) - if block_given? - html_options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash) - content = capture(&block) - else - content = content_or_options_with_block - end + content = + if block_given? + html_options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash) + capture(&block) + else + content_or_options_with_block + end + + tag = content_tag("script", javascript_cdata_section(content), html_options.merge(:type => Mime::JS)) - concat(content_tag("script", javascript_cdata_section(content), html_options.merge(:type => Mime::JS))) + block_given? ? concat(tag) : tag end def javascript_cdata_section(content) #:nodoc: diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb index f136f56777..4924074c3e 100644 --- a/actionpack/test/template/javascript_helper_test.rb +++ b/actionpack/test/template/javascript_helper_test.rb @@ -82,8 +82,12 @@ class JavaScriptHelperTest < ActionView::TestCase end def test_javascript_tag + @output_buffer = 'foo' + assert_dom_equal "<script type=\"text/javascript\">\n//<![CDATA[\nalert('hello')\n//]]>\n</script>", javascript_tag("alert('hello')") + + assert_equal 'foo', @output_buffer, 'javascript_tag without a block should not concat to @output_buffer' end def test_javascript_tag_with_options |