Module | LocaleFilter::LineConverter |
In: |
localefilter.rb
|
改行コードを判定・変換する.
改行コード名変換: | str2line, line2code |
改行コード変換: | expand_line, convert_line, tocrlf, tocr, tolf |
改行コード変換(破壊的メソッド): | expand_line!, convert_line!, tocrlf!, tocr!, tolf! |
改行コード判定: | guess_line, compare_line, crlf?, cr?, lf? |
CR | = | "\r" | CR の改行コード | |
LF | = | "\n" | LF の改行コード | |
CRLF | = | CR + LF | CRLF の改行コード | |
RegexpCR | = | /#{CR}/ | CR の改行コードにマッチする正規表現 | |
RegexpLF | = | /#{LF}/ | LF の改行コードにマッチする正規表現 | |
RegexpCRLF | = | /#{CRLF}/ | CRLF の改行コードにマッチする正規表現 | |
RegexpCR_NAME | = | /\b(?i:cr|mac(?:intosh)?)\b|#{CR}/ | CR の改行コード名にマッチする正規表現 | |
RegexpLF_NAME | = | /\b(?i:lf|unix)\b|#{LF}/ | LF の改行コード名にマッチする正規表現 | |
RegexpCRLF_NAME | = | /\b(?i:crlf|win(?:dows)?)\b|#{CRLF}/ | CRLF の改行コード名にマッチする正規表現 |
str の改行コードが line と同じなら true を返す.
# File localefilter.rb, line 606 def compare_line(str, line) line2code(str2line(str)) == line2code(line) end
str を改行コード line に変換する.
# File localefilter.rb, line 546 def convert_line(str, line) str = str.to_s case line2code(line) when CRLF str.gsub(CRLF, LF).gsub(CR, LF).gsub(LF, CRLF) when LF str.gsub(CRLF, LF).gsub(CR, LF) when CR str.gsub(CRLF, CR).gsub(LF, CR) else return str end end
convert_line の破壊的メソッド.
# File localefilter.rb, line 561 def convert_line!(str, line) str.replace(convert_line(str, line)) end
str の改行コードが CRLF なら true を返す.
# File localefilter.rb, line 611 def crlf?(str) compare_line(str, CRLF) end
str の改行コードに相当するバックスラッシュ記法を展開する.
# File localefilter.rb, line 596 def expand_line(str) str.to_s.gsub('\r', CR).gsub('\n', LF) end
expand_line の破壊的メソッド.
# File localefilter.rb, line 601 def expand_line!(str) str.replace(expand_line(str)) end
改行コード名 line に対応する改行コードを返す.
# File localefilter.rb, line 525 def line2code(line) case line.to_s when RegexpCRLF_NAME CRLF when RegexpCR_NAME CR when RegexpLF_NAME LF end end
str の改行コードを判定し, 改行コード名を返す.
# File localefilter.rb, line 511 def str2line(str) case str.to_s when RegexpCRLF 'CRLF (Windows)' when RegexpLF 'LF (UNIX)' when RegexpCR 'CR (Macintosh)' else 'UNKNOWN' end end
str の改行コードを CRLF に変換する.
# File localefilter.rb, line 566 def tocrlf(str) convert_line(str, CRLF) end