Ruby で改行を削除せずに複数行の長い文字列を分割する
概要
私たちは最近、私の仕事で Ruby のスタイルガイドを決定しました。法令の 1 つは、1 行の幅が 80 文字を超えてはいけないというものです。これは Rails プロジェクトであるため、少し長い文字列が含まれることがよくあります。つまり、「ユーザー X が物体 Y についてのメッセージを送信したいと考えています」など、80 文字のスタイル制限内に常に収まるとは限りません。
長い文字列を複数行にまたがる方法は 3 つあると思います。
ただし、これらのケースはすべて、最終的にはより多くの計算サイクルがかかることになり、ばかげているように思えます。文字列の連結は明らかですが、HEREDOC と %Q の場合は、.gsub(/ のようなものを使用して改行を取り除く必要があります) $/、’’)。
これを行う純粋な構文の方法はありますか。それは、文字列全体を 1 行に置くのと同等です。目標は、コードをもう少し読みやすくしたいという理由だけで、余分なサイクルを費やさないことです。 (はい、そのトレードオフをかなり考慮する必要があることは理解しています…しかし、文字列の長さを考えると、これはばかげているように思えます。)
アップデート: バックスラッシュは、インデントを失うため、私が望むものではありません。これはスタイルや読みやすさに大きな影響を与えます。
例:
if foo
string = "this is a \
string that spans lines"
end
上記は少し読みにくいと思います。
解決策
おそらくこれがあなたが探しているものですか?
string = "line #1"\
"line #2"\
"line #3"
p string # => "line #1line #2line #3"