Class/Module Index [+]

Quicksearch

CharDet::EUCJPProber

Public Class Methods

new() click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb, line 31
def initialize
  super()
  @_mCodingSM = CodingStateMachine.new(EUCJPSMModel)
  @_mDistributionAnalyzer = EUCJPDistributionAnalysis.new()
  @_mContextAnalyzer = EUCJPContextAnalysis.new()
  reset
end

Public Instance Methods

feed(aBuf) click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb, line 48
def feed(aBuf)
  aLen = aBuf.length
  for i in (0...aLen)
    codingState = @_mCodingSM.next_state(aBuf[i..i])
    if codingState == EError
      $stderr << "#{get_charset_name} prober hit error at byte #{i}\n" if $debug
      @_mState = ENotMe
      break
    elsif codingState == EItsMe
      @_mState = EFoundIt
      break
    elsif codingState == EStart
      charLen = @_mCodingSM.get_current_charlen()
      if i == 0
        @_mLastChar[1] = aBuf[0..0]
        @_mContextAnalyzer.feed(@_mLastChar, charLen)
        @_mDistributionAnalyzer.feed(@_mLastChar, charLen)
      else
        @_mContextAnalyzer.feed(aBuf[i-1...i+1], charLen)
        @_mDistributionAnalyzer.feed(aBuf[i-1...i+1], charLen)
      end
    end
  end

  @_mLastChar[0] = aBuf[aLen-1..aLen-1]

  if get_state() == EDetecting
    if @_mContextAnalyzer.got_enough_data() and (get_confidence() > SHORTCUT_THRESHOLD)
      @_mState = EFoundIt
    end
  end

  return get_state()
end
get_charset_name() click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb, line 44
def get_charset_name
  return "EUC-JP"
end
get_confidence() click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb, line 83
def get_confidence
  l = [@_mContextAnalyzer.get_confidence,@_mDistributionAnalyzer.get_confidence]
  return l.max
end
reset() click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/eucjpprober.rb, line 39
def reset
  super()
  @_mContextAnalyzer.reset()
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.