Скажем, я хотел иметь очень большой блок довольно напечатанного html-кода, связанного с моим кодом ruby. Каков самый чистый способ сделать это, не теряя форматирования в моей строке или не помню какое-то выражение gsub.
Кодирование всего в одной строке легко сделать, но трудно читать:
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
Многострочный текст в ruby легче читать, но строка не может быть отступом с остальной частью кода:
1.times do
doc = "
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
"
ans = "Your document: %s" % [doc]
puts ans
end
Например, следующий код имеет отступ с моим кодом, но теперь строка имеет четыре дополнительных пробела перед каждой строкой:
1.times do
doc = <<-EOM
<html>
<head>
<title>
Title
</title>
</head>
<body>
Body
</body>
</html>
EOM
ans = "Your document: %s" % [doc]
puts ans
end
Большинство людей идут с кодом HEREDOC выше и заменяют регулярное выражение на результат, чтобы извлечь лишние пробелы в начале каждой строки. Я хотел бы, чтобы каждый раз мне не приходилось сталкиваться с проблемой регулярного выражения.