Class | String |
In: |
jcode.rb
|
Parent: | Object |
PATTERN_SJIS | = | '[\x81-\x9f\xe0-\xef][\x40-\x7e\x80-\xfc]' |
PATTERN_EUC | = | '[\xa1-\xfe][\xa1-\xfe]' |
PATTERN_UTF8 | = | '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]' |
RE_SJIS | = | Regexp.new(PATTERN_SJIS, 0, 'n') |
RE_EUC | = | Regexp.new(PATTERN_EUC, 0, 'n') |
RE_UTF8 | = | Regexp.new(PATTERN_UTF8, 0, 'n') |
SUCC | = | {} |
HashCache | = | {} |
TrPatternCache | = | {} |
DeletePatternCache | = | {} |
SqueezePatternCache | = | {} |
succ! | -> | original_succ! |
succ | -> | original_succ |
# File jcode.rb, line 151 def delete!(del) return nil if del == "" self.gsub!(DeletePatternCache[del] ||= /[#{_regex_quote(del)}]+/, '') end
# File jcode.rb, line 209 def each_char if block_given? scan(/./m) do |x| yield x end else scan(/./m) end end
# File jcode.rb, line 59 def end_regexp case $KCODE[0] when ?s, ?S /#{PATTERN_SJIS}$/on when ?e, ?E /#{PATTERN_EUC}$/on when ?u, ?U /#{PATTERN_UTF8}$/on else /.$/on end end
# File jcode.rb, line 46 def mbchar? case $KCODE[0] when ?s, ?S self =~ RE_SJIS when ?e, ?E self =~ RE_EUC when ?u, ?U self =~ RE_UTF8 else nil end end
# File jcode.rb, line 160 def squeeze!(del=nil) return nil if del == "" pattern = if del SqueezePatternCache[del] ||= /([#{_regex_quote(del)}])\1+/ else /(.|\n)\1+/ end self.gsub!(pattern, '\1') end
# File jcode.rb, line 78 def succ! reg = end_regexp if self =~ reg succ_table = SUCC[$KCODE[0,1].downcase] begin self[-1] += succ_table[self[-1]] self[-2] += 1 if self[-1] == 0 end while self !~ reg self else original_succ! end end
# File jcode.rb, line 133 def tr!(from, to) return nil if from == "" return self.delete!(from) if to == "" pattern = TrPatternCache[from] ||= /[#{_regex_quote(from)}]/ if from[0] == ?^ last = /.$/.match(to)[0] self.gsub!(pattern, last) else h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to) self.gsub!(pattern) do |c| h[c] end end end
# File jcode.rb, line 175 def tr_s!(from, to) return self.delete!(from) if to.length == 0 pattern = SqueezePatternCache[from] ||= /([#{_regex_quote(from)}])\1+/ if from[0] == ?^ last = /.$/.match(to)[0] self.gsub!(pattern, last) else h = HashCache[from + "1-0" + to] ||= expand_ch_hash(from, to) self.gsub!(pattern) do h[$1] end end end