class CharDet::SJISProber
Public Class Methods
new()
click to toggle source
Calls superclass method
CharDet::MultiByteCharSetProber.new
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb, line 31 def initialize super() @_mCodingSM = CodingStateMachine.new(SJISSMModel) @_mDistributionAnalyzer = SJISDistributionAnalysis.new() @_mContextAnalyzer = SJISContextAnalysis.new() reset() end
Public Instance Methods
feed(aBuf)
click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.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[2 - charLen..-1], charLen) @_mDistributionAnalyzer.feed(@_mLastChar, charLen) else @_mContextAnalyzer.feed(aBuf[i + 1 - charLen ... i + 3 - charLen], 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/sjisprober.rb, line 44 def get_charset_name return "SHIFT_JIS" end
get_confidence()
click to toggle source
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb, line 83 def get_confidence l = [@_mContextAnalyzer.get_confidence(), @_mDistributionAnalyzer.get_confidence()] return l.max end
reset()
click to toggle source
Calls superclass method
CharDet::MultiByteCharSetProber#reset
# File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb, line 39 def reset super() @_mContextAnalyzer.reset() end