2015-04-09 4 views
0

У меня есть метод Ruby, который использует Nokogiri для разбора heredoc. В настоящее время она выглядит, как это и передает все функции:Разбор heredoc с Nokogiri

def html_headers 
    Nokogiri::XML::DocumentFragment.parse(<<-HTML) 
    .... 
    HTML 
end 

Однако, когда я изменить его к следующему, он не спецификации. Я немного новичок в Ruby, поэтому не знаю, как это может изменить результат. Тесты в консоли предполагают, что он ничего не должен менять, что str должен содержать эквивалентную строку предыдущей версии этого метода.

def html_headers 
    str = <<-HTML 
    ... 
    HTML 
    Nokogiri::XML::DocumentFragment.parse(str) 
end 
+1

Это должно работать как есть. Как он терпит неудачу? –

+0

@muistooshort Исправлено. –

ответ

0

Вместо того, чтобы удалять этот вопрос, я оставлю его в качестве записи моего позора. Исходный код был на самом деле

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, чтобы привести его в линию с остальной частью метода не будет иметь эффект. Дурак я.

Смежные вопросы