Module LocaleFilter::LineConverter
In: localefilter.rb

Summary

改行コードを判定・変換する.

Methods

Public Methods

改行コード名変換:str2line, line2code
改行コード変換:expand_line, convert_line, tocrlf, tocr, tolf
改行コード変換(破壊的メソッド):expand_line!, convert_line!, tocrlf!, tocr!, tolf!
改行コード判定:guess_line, compare_line, crlf?, cr?, lf?

Methods

compare_line   convert_line   convert_line!   cr?   crlf?   expand_line   expand_line!   guess_line   lf?   line2code   str2line   tocr   tocr!   tocrlf   tocrlf!   tolf   tolf!  

Constants

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 の改行コード名にマッチする正規表現

Public Instance methods

str の改行コードが line と同じなら true を返す.

[Source]

# File localefilter.rb, line 606
    def compare_line(str, line)
      line2code(str2line(str)) == line2code(line)
    end

str を改行コード line に変換する.

[Source]

# 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 の破壊的メソッド.

[Source]

# File localefilter.rb, line 561
    def convert_line!(str, line)
      str.replace(convert_line(str, line))
    end

str の改行コードが CR なら true を返す.

[Source]

# File localefilter.rb, line 616
    def cr?(str)
      compare_line(str, CR)
    end

str の改行コードが CRLF なら true を返す.

[Source]

# File localefilter.rb, line 611
    def crlf?(str)
      compare_line(str, CRLF)
    end

str の改行コードに相当するバックスラッシュ記法を展開する.

[Source]

# File localefilter.rb, line 596
    def expand_line(str)
      str.to_s.gsub('\r', CR).gsub('\n', LF)
    end

expand_line の破壊的メソッド.

[Source]

# File localefilter.rb, line 601
    def expand_line!(str)
      str.replace(expand_line(str))
    end

str の改行コードを str2line で判定し, 改行コード名, 改行コードを格納した Hash を返す.

[Source]

# File localefilter.rb, line 538
    def guess_line(str)
      list = Hash.new
      list[:line] = str2line(str)
      list[:code] = line2code(list[:line])
      return list
    end

str の改行コードが LF なら true を返す.

[Source]

# File localefilter.rb, line 621
    def lf?(str)
      compare_line(str, LF)
    end

改行コード名 line に対応する改行コードを返す.

[Source]

# 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 の改行コードを判定し, 改行コード名を返す.

[Source]

# 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 の改行コードを CR に変換する.

[Source]

# File localefilter.rb, line 576
    def tocr(str)
      convert_line(str, CR)
    end

tocr の破壊的メソッド.

[Source]

# File localefilter.rb, line 591
    def tocr!(str)
      convert_line!(str, CR)
    end

str の改行コードを CRLF に変換する.

[Source]

# File localefilter.rb, line 566
    def tocrlf(str)
      convert_line(str, CRLF)
    end

tocrlf の破壊的メソッド.

[Source]

# File localefilter.rb, line 581
    def tocrlf!(str)
      convert_line!(str, CRLF)
    end

str の改行コードを LF に変換する.

[Source]

# File localefilter.rb, line 571
    def tolf(str)
      convert_line(str, LF)
    end

tolf の破壊的メソッド.

[Source]

# File localefilter.rb, line 586
    def tolf!(str)
      convert_line!(str, LF)
    end

[Validate]