2015-04-09 1 views
0

J'ai une méthode Ruby qui utilise Nokogiri pour analyser un hérédoc. Il semble actuellement comme ça et passe toutes les spécifications:Analyse d'un heredoc avec Nokogiri

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

Cependant, quand je change à ce qui suit, il ne les spécifications. Je suis un peu nouveau à Ruby, donc je ne suis pas sûr de savoir comment cela pourrait changer le résultat. Les tests dans la console suggèrent qu'il ne devrait rien changer, que str devrait contenir une chaîne équivalente à la version précédente de cette méthode.

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

Cela devrait fonctionner tel quel. Comment ça marche? –

+0

@muistooshort Corrigé. –

Répondre

0

Plutôt que de supprimer cette question, je vais le laisser comme un enregistrement de ma honte. Le code d'origine était en fait

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

et le code qui périclite était

def html_headers 
    str = <<-HTML 
    <div>...</div> 
    HTML 
    Nokogiri::XML::DocumentFragment.parse(str) 
end 

Je pensais que Indentation de la heredoc pour l'amener en ligne avec le reste de la méthode n'aurait pas d'effet. Que je suis bête.