2012-02-08 18 views
3

Groovyのエラーメッセージで、特定の文字数/行(たとえば、80文字)を超えてはならない標準とは何ですか?Groovy例外メッセージのGStringを複数行にする方法

throw new IOException("""\ 
     A Jenkins configuration for the given version control 
     system (${vcs.name}) does not exist.""" 
     .stripIndent() 
     .replaceAll('\n', ' ')) 

これは、(私が欲しいもの)なしインデント文字を1行のエラーメッセージが表示されます(正常に動作している)次のことを考えてみましょう。しかし、これを達成するための他の方法(「それを行う方法」)がありますか?もしそうでなければ、スタンドアロンのGroovyアプリケーションのGStringクラスにそのようなメソッドを追加する方法はありますか?(Bootstrap.groovyファイルに関するヒントが見つかったら、それはGrailsに関係しているようです)

例:

throw new IOException("A Jenkins configuration for the given version control \ 
         system (${vcs.name}) does not exist.".replaceAll(/()\1+/, '$1')) 

それとも機能でこれをラップし、私は答えます信じるようString.metaClassにそれを追加することができます。"""Consider a multi line string as shown above""".toSingleLine()

答えて

3

あなたが複数のスペースを取り除き、次に文字列の継続文字を使用することができます見たことがある。

あなたは右Bootstrap.groovyは、Grailsの事ですが、あなたは自分のアプリケーションのライフサイクルの早い段階でメタクラスを設定した場合、あなたは同じ結果を得るべきであると考え中です...すべてと言って

String.metaClass.stripRepeatedWhitespace = { delegate.replaceAll(/()\1+/, '$1') } 

しかし、私はたぶん単一行にメッセージを残しておきます。

関連する問題