Je suis en train d'analyser un fichier texte et je souhaite pouvoir étendre les ensembles de jetons facilement reconnaissables. Actuellement, j'ai ce qui suit:Ruby paramétrer si ... puis bloque
if line =~ /!DOCTYPE/
puts "token doctype " + line[0,20]
@ast[:doctype] << line
elsif line =~ /<html/
puts "token main HTML start " + line[0,20]
html_scanner_off = false
elsif line =~ /<head/ and not html_scanner_off
puts "token HTML header starts " + line[0,20]
html_header_scanner_on = true
elsif line =~ /<title/
puts "token HTML title " + line[0,20]
@ast[:HTML_header_title] << line
end
Existe-t-il un moyen d'écrire ceci avec un bloc de rendement, par ex. quelque chose comme:
scanLine("title", :HTML_header_title, line)
?
super! merci pour le point d'entrée à la méta-programmation ... pour les autres, cette présentation aide aussi à comprendre quelle est l'idée: http://www.slideshare.net/faro00oq/metaprogramming-with-ruby – poseid