ある複数行の文字列を別の文字列に補間しようとすると、部分文字列の最初の行だけが正しいインデントを持っているため、間違ったインデントが発生します。
substring = <<-STRING.strip_heredoc
first line
second line
STRING
string = <<-STRING.strip_heredoc
Quote
#{ substring }
from substring
STRING
結果は次のようになります。
Quote
first line
second line
from substring
一方、望ましいものは
Quote
first line
second line
from substring
私の質問は、 perl と xml に関するこの質問、またはerb に関するこの質問とほぼ同じですが、もう少し一般的です。
SGML (XML、HTML、または ERB) だけでなく、SQL やその他の言語の生成にも補間が役立つ可能性があるという事実を考慮すると...
複数行の文字列を正しいインデントで補間する方法、方法、または一般的な方法はありますか?
方法がない場合、さまざまな言語(HTML、SQL など)の後処理にどのツールをお勧めしますか?
アップデート:
Ruby 2.3 の機能<<~
は still (そして明らかに) に類似しstrip_heredoc
ており、部分文字列の最初の行にのみインデントを追加します