Class: CharDet::CharSetGroupProber

Inherits:
CharSetProber show all
Defined in:
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/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/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/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/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/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/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