提交 7669c33c 编写于 作者: S Santiago Pastorino

Merge pull request #2018 from bhus/render_partial_invalid_check

Render partial invalid check
......@@ -301,6 +301,12 @@ def setup(context, options, block)
paths.map! { |path| retrieve_variable(path).unshift(path) }
end
if String === partial && @variable !~ /^[a-z_][a-zA-Z_0-9]*$/
raise ArgumentError.new("The partial name (#{partial}) is not a valid Ruby identifier; " +
"make sure your partial name starts with a letter or underscore, " +
"and is followed by any combinations of letters, numbers, or underscores.")
end
self
end
......
......@@ -98,6 +98,15 @@ def test_render_partial_with_locals_from_default
assert_equal "only partial", @view.render("test/partial_only", :counter_counter => 5)
end
def test_render_partial_with_invalid_name
@view.render(:partial => "test/200")
flunk "Render did not raise ArgumentError"
rescue ArgumentError => e
assert_equal "The partial name (test/200) is not a valid Ruby identifier; " +
"make sure your partial name starts with a letter or underscore, " +
"and is followed by any combinations of letters, numbers, or underscores.", e.message
end
def test_render_partial_with_errors
@view.render(:partial => "test/raise")
flunk "Render did not raise Template::Error"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册