📌
[Feature #20525] インデントをサポートする %記法や String#dedent メソッドを追加する提案
[Feature #20525] Percent string literal with indentation support or String#dedent
- インデントをサポートする %記法や
String#dedentメソッドを追加する提案 - 例えば以下のようなヒアドキュメントを書いたときに
ContentSlide(title: "Why Phlex?"){
Markdown <<~MARKDOWN
* Because its fun
* Because its super-de-dooper
MARKDOWN
},
-
Markdownの名前が重複しているので以下のように{}で書きたいのがモチベーションみたいですね - 例えば %記法だと以下のような感じでかけて
ContentSlide(title: "Why Phlex?"){
Markdown %~{
# Why do you like markdown?
* Because its fun
* Because its super-de-dooper
}
},
-
String#dedentだと以下のようにかけるイメージです
ContentSlide(title: "Why Phlex?"){
Markdown %{
# Why do you like markdown?
* Because its fun
* Because its super-de-dooper
}.dedent
},
- これに対して %記法の方は以下のコードと競合するとコメントされていますね
# 以下は現在でも有効な %記法
# ~ から ~ までが文字列として定義される
pp %~{~
# => "{"
- また
<<~"}"を使う書き方もコメントされていますね
ContentSlide(title: "Why Phlex?"){
Markdown <<~"}"
* Because its fun
* Because its super-de-dooper
}
},
- 個人的には
{}の方が見栄えはいいんですがヒアドキュメントの識別子をEOSで一貫しているのでそこまで気にはならないすねえ -
String#dedentはそれはそれでよさそうな気がしたんですが入れるとしたら<<~以外のケースでどれだけ利用するケースがあるのか、ってところになりそうですかねー
Discussion