Class | CharDet::SJISProber
In: | lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb
Parent: | MultiByteCharSetProber

### Methods

feed get_charset_name get_confidence new reset

### Public Class methods

new()

[Source]

    # 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)

[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()

[Source]

    # File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb, line 44
        def get_charset_name
          return "SHIFT_JIS"
        end

get_confidence()

[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()

[Source]

    # File lib/tmail/vendor/rchardet-1.3/lib/rchardet/sjisprober.rb, line 39
        def reset
          super()
          @_mContextAnalyzer.reset()
        end

[Validate]