class CharDet::MultiByteCharSetProber

Public Class Methods

new() click to toggle source
Calls superclass method CharDet::CharSetProber::new
# File lib/rchardet/mbcharsetprober.rb, line 33
def initialize
  super
  @distributionAnalyzer = nil
  @codingSM = nil
  @lastChar = "\x00\x00"
end

Public Instance Methods

feed(aBuf) click to toggle source
# File lib/rchardet/mbcharsetprober.rb, line 54
def feed(aBuf)
  aLen = aBuf.length
  for i in (0...aLen)
    codingState = @codingSM.next_state(aBuf[i, 1])
    if codingState == EError
      $stderr << "#{get_charset_name} prober hit error at byte #{i}\n" if $debug
      @state = ENotMe
      break
    elsif codingState == EItsMe
      @state = EFoundIt
      break
    elsif codingState == EStart
      charLen = @codingSM.get_current_charlen()
      if i == 0
        @lastChar[1] = aBuf[0, 1]
        @distributionAnalyzer.feed(@lastChar, charLen)
      else
        @distributionAnalyzer.feed(aBuf[i-1, 2], charLen)
      end
    end
  end
  @lastChar[0] = aBuf[aLen-1, 1]

  if get_state() == EDetecting
    if @distributionAnalyzer.got_enough_data() and (get_confidence() > SHORTCUT_THRESHOLD)
      @state = EFoundIt
    end
  end
  return get_state()
end
get_charset_name() click to toggle source
# File lib/rchardet/mbcharsetprober.rb, line 51
def get_charset_name
end
get_confidence() click to toggle source
# File lib/rchardet/mbcharsetprober.rb, line 85
def get_confidence
  return @distributionAnalyzer.get_confidence()
end
reset() click to toggle source
Calls superclass method CharDet::CharSetProber#reset
# File lib/rchardet/mbcharsetprober.rb, line 40
def reset
  super
  if @codingSM
    @codingSM.reset()
  end
  if @distributionAnalyzer
    @distributionAnalyzer.reset()
  end
  @lastChar = "\x00\x00"
end