Ruby で改行を削除せずに長い文字列を複数行に分割する 質問する

Ruby で改行を削除せずに長い文字列を複数行に分割する 質問する

最近、私の職場で Ruby スタイル ガイドを採用することにしました。その規則の 1 つは、1 行の長さが 80 文字を超えてはならないというものです。これは Rails プロジェクトなので、少し長めの文字列 (たとえば、「ユーザー X が、Y に関するメッセージを送信したいと言っています」など) が、80 文字のスタイル制限内に収まらないことがよくあります。

長い文字列を複数行にまたがるには、次の 3 つの方法があることを理解しています。

  • ヘレドック
  • %Q{}
  • 実際の文字列の連結。

しかし、これらすべてのケースでは、より多くの計算サイクルが必要になるため、不合理に思えます。明らかに文字列の連結ですが、 および の場合は、HEREDOC%Qようなものを使用して改行を削除する必要があります.gsub(/\n$/, '')

文字列全体を 1 行にまとめるのと同等の、純粋な構文でこれを行う方法はありますか? 目標は、明らかに、コードを少し読みやすくしたいという理由だけで余分なサイクルを費やさないようにすることです。(はい、そのトレードオフを頻繁に行う必要があることは承知していますが、文字列の長さに関しては、これはばかげているように思えます。)

更新: バックスラッシュはインデントが失われ、スタイルや読みやすさに大きな影響を与えるため、私が望んでいるものではありません。

例:

if foo
  string = "this is a \  
string that spans lines"  
end

上記は少し読みにくいと思います。

編集: 以下に回答を追加しました。3年後、曲がりくねったヒアドキュメントができました。

ベストアンサー1

おそらくこれがあなたが探しているものなのでしょうか?

string = "line #1"\
         "line #2"\
         "line #3"

p string # => "line #1line #2line #3"

おすすめ記事