Dire che volevo avere un blocco molto grande di codice html piuttosto stampato stretto in linea con il mio codice rubino. Qual è il modo più pulito per farlo senza perdere alcuna formattazione nella mia stringa o dover ricordare una sorta di regex di gsub.C'è un modo semplice per creare stringhe con rientro multilinea in Ruby?
Codifica tutto in una sola riga è facile da fare, ma difficile da leggere:
1.times do
# Note that the spaces have been changed to _ so that they are easy to see here.
doc = "\n<html>\n__<head>\n____<title>\n______Title\n____</title>\n__</head>\n__<body>\n____Body\n__</body>\n</html>\n"
ans = "Your document: %s" % [doc]
puts ans
end
testo multilinea in Ruby è più facile da leggere, ma la corda non può essere rientrato con il resto del codice:
1.times do
doc = "
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
"
ans = "Your document: %s" % [doc]
puts ans
end
Per esempio il seguente è rientrato con il mio codice, ma la stringa ora ha quattro spazi aggiuntivi di fronte a ogni riga:
1.times do
doc = <<-EOM
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
EOM
ans = "Your document: %s" % [doc]
puts ans
end
La maggior parte delle persone utilizza il codice HEREDOC sopra riportato e sostituisce il risultato con un regex per eliminare gli spazi bianchi aggiuntivi all'inizio di ogni riga. Mi piacerebbe un modo in cui non devo passare attraverso il problema di regexing ogni volta.
Partenza - http://stackoverflow.com/questions/3350648/ruby-indented-multiline-strings – theglauber
Inoltre - http: // StackOverflow.it/questions/3772864/how-do-i-remove-leading-whitespace-chars-from-ruby-heredoc – theglauber
'Ho una stringa (" quando \ n l'orologio \ n colpisce \ n dieci \ n ") sarebbe molto più pulito se potesse essere digitato con caratteri di nuova riga. "Non ha senso. '" \ n "' sono veri caratteri di nuova riga. –