From 4c5583d061de648e5e3475026c41eeb49d9b262d Mon Sep 17 00:00:00 2001 From: Masataka Pocke Kuwabara Date: Tue, 26 May 2020 09:59:46 +0900 Subject: [PATCH] Add IO#set_encoding_by_bom since 2.7.0 --- refm/api/src/_builtin/IO | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/refm/api/src/_builtin/IO b/refm/api/src/_builtin/IO index 69c8b6d178..ace163f58f 100644 --- a/refm/api/src/_builtin/IO +++ b/refm/api/src/_builtin/IO @@ -2247,6 +2247,32 @@ opt のハッシュで外部エンコーディングを内部エンコーディ io = File.open(file) io.set_encoding("ASCII-8BIT", "EUC-JP") +#@since 2.7.0 +--- set_encoding_by_bom -> Encoding | nil + +BOM から IO のエンコーディングを設定します。 + +自身が BOM から始まる場合、BOM を読み進めて外部エンコーディングをセットし、セットしたエンコーディングを返します。 +BOM が見つからなかった場合は nil を返します。 + +自身がバイナリモードでないかすでにエンコーディングがセットされている場合、例外が発生します。 + +#@samplecode 例 +File.write("bom.txt", "\u{FEFF}abc") +File.open("bom.txt", "rb") do |io| + p io.set_encoding_by_bom #=> # + str = io.read + p str #=> "abc" + p str.encoding #=> # +end + +File.write("nobom.txt", "abc") +File.open("nobom.txt", "rb") do |io| + p io.set_encoding_by_bom #=> nil +end +#@end +#@end + --- autoclose=(bool) auto-close フラグを設定します。