1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

javascript_tag should only concat when block_given?

This commit is contained in:
Jeremy Kemper 2008-06-06 17:59:41 -07:00
parent fec0f0678b
commit e732a405ab
2 changed files with 14 additions and 7 deletions

View file

@ -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
concat(content_tag("script", javascript_cdata_section(content), html_options.merge(:type => Mime::JS)))
tag = 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:

View file

@ -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