@@ -322,9 +322,9 @@ LABEL
322322 This line is a here document.
323323 EOS
324324
325- 開始ラベルを `<<-識別子' のように `-' を付けて書くことで終端
326- 行をインデントすることができます。これ以外では、終端行に、余
327- 分な空白やコメントさえも書くことはできません 。
325+ 開始ラベルを `<<-識別子' または `<<~識別子` のように
326+ `-' または `~' を付けて書くことで、終端行をインデントすることができます。
327+ このケースを除き、終端行には余分な空白やコメントさえも書くことはできません 。
328328
329329#@samplecode
330330if need_define_foo
@@ -337,22 +337,44 @@ if need_define_foo
337337end
338338#@end
339339
340- #@since 2.3.0
341- 開始ラベルを `<<~識別子` のように `~` を付けて書くことで、以下のような
342- ヒアドキュメントを書くことができます。
340+ `<<-識別子` の場合は、終端行をインデントしたとしてもヒアドキュメント中の
341+ 先頭の空白はそのまま文字列に現れます。
342+
343+ 一方で `<<~識別子` の場合は、最もインデントが少ない行を基準にして、全ての行の先頭から空白を取り除きます。
344+ (「最もインデントが少ない行」には、終端行は含まれません。)
343345
344346#@samplecode
345- expected_result = <<~SQUIGGLY_HEREDOC
346- This would contain specially formatted text.
347+ begin
348+ str_hyphen = <<-EOS
349+ aaa
350+ bbb
351+ ccc
352+ EOS
353+
354+ str_tilde = <<~EOS
355+ aaa
356+ bbb
357+ ccc
358+ EOS
347359
348- That might span many lines
349- SQUIGGLY_HEREDOC
350- # => " This would contain specially formatted text. \ n " + " \ n " + " That might span many lines \ n "
360+ p str_hyphen # => " aaa \ n bbb \ n ccc \ n "
361+ p str_tilde # => " aaa \ n bbb \ nccc \ n "
362+ end
351363#@end
352364
353- 最もインデントが少ない行を基準にして、全ての行の先頭から空白を取り除きます。
354365インデントの深さを決定するために主にタブやスペースで構成された行は無視されるので、注意してください。
355366しかし、エスケープされたタブやスペースは、通常の文字と同じように扱われます。
367+
368+ #@samplecode
369+ s = <<~EOS
370+ 空白4つ
371+ 空白8つ
372+
373+ EOS
374+ # ↑EOSの上の行には空白2つがある
375+
376+ # 「最もインデントが少ない行」は、空白2つの行ではなく空白4つの行になる。
377+ p s # => " 空白4 つ\n 空白8 つ\n \n "
356378#@end
357379
358380一行に複数のヒアドキュメントを書くこともできます。
0 commit comments