我有一个Ruby方法,它使用Nokogiri来解析一个heredoc。它目前看起来像这样并通过了所有规范:
def html_headers
Nokogiri::XML::DocumentFragment.parse(<<-HTML)
....
HTML
end
但是,当我将其更改为以下内容时,它不符合规格。我对 Ruby 有点陌生,所以我不确定这会如何改变结果。控制台中的测试表明它不应更改任何内容,str
应包含与此方法的先前版本等效的字符串。
def html_headers
str = <<-HTML
...
HTML
Nokogiri::XML::DocumentFragment.parse(str)
end
与其删除这个问题,不如把它作为我羞耻的记录。原始代码实际上是
def html_headers
Nokogiri::XML::DocumentFragment.parse(<<-HTML)
<div>...</div>
HTML
end
失败的代码是
def html_headers
str = <<-HTML
<div>...</div>
HTML
Nokogiri::XML::DocumentFragment.parse(str)
end
我认为缩进 heredoc 以使其与该方法的其余部分内联不会产生效果。傻我。