Quand je lance ces trois lignes en irb il fonctionnePourquoi cette séquence de code me sort-elle de la boucle dans un programme ruby?
date="02 Jul 2008, 08:41"
d=Date.strptime(date, "%d %b %Y, %H:%M").iso8601
Time.parse(d).utc.iso8601
output=>"2008-07-01T18:30:00Z"
mais lorsqu'il est utilisé dans une boucle, qui fonctionne très bien sans ces lignes, la boucle désiste après la génération de la sortie de la première étape. le code qui génère la valeur de date est marqué comme nul obtenir le code exemple est le suivant
page_doc = page_doc.xpath('//div[@id="page-body"]').first
page_doc.xpath('./div').each do |div|
author_node=div.xpath('.//p[@class="author"]/strong/a').first
if author_node == nil
author = "NA"
else
author = author_node.content.chomp.strip.gsub("Gjest:", "")
end
author_url_node = div.xpath('.//p[@class="author"]/strong/a/@href').first
if author_url_node == nil
author_url = "NA"
else
author_url = @site + author_url_node.content.chomp.strip
end
date_node = div.xpath('.//p[@class="author"]').first
date = SDF::force_ascii(date_node.content.chomp.strip.reverse[0..17].reverse) if date_node
content = format_description(div.xpath('.//div[@class="content"]'))
end
Pour moi, il n'est pas clair comment vous lier vos deux échantillons de code? La seconde est-elle la boucle sans les premières lignes? Et où placez-vous alors les lignes, avec quelles variables? Ou est le SDF :: force_ascii la méthode effectuant ces 4 premières lignes? – nathanvda