Class: CharDet::CharSetGroupProber

Inherits:
CharSetProber show all
Defined in:
lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb

Direct Known Subclasses

MBCSGroupProber, SBCSGroupProber

Instance Attribute Summary collapse

Attributes inherited from CharSetProber

#active

Instance Method Summary collapse

Methods inherited from CharSetProber

#filter_high_bit_only, #filter_with_english_letters, #filter_without_english_letters, #get_state

Constructor Details

#initializeCharSetGroupProber

Returns a new instance of CharSetGroupProber.


32
33
34
35
36
37
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 32

def initialize
  super
  @_mActiveNum = 0
  @_mProbers = []
  @_mBestGuessProber = nil
end

Instance Attribute Details

#_mProbersObject

Returns the value of attribute _mProbers


31
32
33
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 31

def _mProbers
  @_mProbers
end

Instance Method Details

#feed(aBuf) ⇒ Object


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 62

def feed(aBuf)
  for prober in @_mProbers
    next unless prober
    next unless prober.active
    st = prober.feed(aBuf)
    next unless st
    if st == EFoundIt
      @_mBestGuessProber = prober
      return get_state()
    elsif st == ENotMe
      prober.active = false
      @_mActiveNum -= 1
      if @_mActiveNum <= 0
        @_mState = ENotMe
        return get_state()
      end
    end
  end
  return get_state()
end

#get_charset_nameObject


53
54
55
56
57
58
59
60
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 53

def get_charset_name
  if not @_mBestGuessProber
    get_confidence()
    return nil unless @_mBestGuessProber
    #                self._mBestGuessProber = self._mProbers[0]
  end
  return @_mBestGuessProber.get_charset_name()
end

#get_confidenceObject


83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 83

def get_confidence()
  st = get_state()
  if st == EFoundIt
    return 0.99
  elsif st == ENotMe
    return 0.01
  end
  bestConf = 0.0
  @_mBestGuessProber = nil
  for prober in @_mProbers
    next unless prober
    unless prober.active
      $stderr << "#{prober.get_charset_name()} not active\n" if $debug
      next
    end
    cf = prober.get_confidence()
    $stderr << "#{prober.get_charset_name} confidence = #{cf}\n" if $debug
    if bestConf < cf
      bestConf = cf
      @_mBestGuessProber = prober
    end
  end
  return 0.0 unless @_mBestGuessProber
  return bestConf
  #        else
  #            self._mBestGuessProber = self._mProbers[0]
  #            return self._mBestGuessProber.get_confidence()
end

#resetObject


39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/tmail/vendor/rchardet-1.3/lib/rchardet/charsetgroupprober.rb', line 39

def reset
  super
  @_mActiveNum = 0

  for prober in @_mProbers
    if prober
      prober.reset()
      prober.active = true
      @_mActiveNum += 1
    end
  end
  @_mBestGuessProber = nil
end