8 def map_char(block = Proc.new)
9 return unless block_given?
10 return self.to_a.map {|ch| (block.call(ch)).to_s }.join("")
13 def map_char!(block = Proc.new)
14 return unless block_given?
15 self.replace(self.map_char {|ch| block.call(ch)})
18 def map_character(block = Proc.new)
19 return unless block_given?
20 return self.to_a.map {|ch| (block.call(ch.char)).to_s }.join("")
23 def map_character!(block = Proc.new)
24 return unless block_given?
25 self.replace(self.map_char {|ch| block.call(ch.char)})
28 def map_utf8() map_char {|ch| ch.char.map_utf8 } end
29 alias map_ucs map_utf8
31 def map_ucs_er() map_char {|ch| ch.char.map_ucs_er } end
32 def to_er() map_char {|ch| ch.char.to_er } end
34 #put
\8aÖ
\8cW
\81A[]
\8aÖ
\8cW
\82Í
\97p
\88Ó
\82µ
\82È
\82¢
\82±
\82Æ
\82É
\82µ
\82½
\81B
36 def inspect_all() map_char {|ch| ch.char.inspect_all } end
37 def inspect_x() map_char {|ch| ch.char.inspect_x } end
39 # def to_euc() map_char {|ch| ch.char.to_euc } end
40 def map_euc() map_char {|ch| ch.char.map_euc } end
41 # def to_sjis() map_char {|ch| ch.char.to_sjis } end
42 def map_sjis() map_char {|ch| ch.char.map_sjis } end
44 def glyph_decompose() map_char {|ch| ch.char.glyph_decompose } end
45 def decompose() map_char {|ch| ch.char.decompose } end
46 def decompose!() self.replace(self.decompose); self; end
48 def nu_decompose_all(level=nil)
49 level = 0 if level.nil?
51 p ["too many recursive", self]
55 return de.decompose_all(level+1) if de != self #
\82È
\82É
\82©
\95Ï
\89»
\82ª
\82 \82Á
\82½
\82©
\82ç
\8dÄ
\8bA
56 de #
\82à
\82¤
\82±
\82ê
\88È
\8fã
\95Ï
\89»
\82Í
\96³
\82³
\82»
\82¤
\82¾
\82¼
\82Æ
\81B
59 def decompose_all() map_char {|ch| ch.char.decompose_all } end
60 def decompose_all!() self.replace(self.decompose_all); self; end
62 def find() #"
\93ú
\89_"
\81¨"
\93Ü"
\82Æ
\82©
\82¢
\82¤
\8a´
\82¶
\82Ì
\91\80\8dì
64 length = char_length()
67 ar << char.ids_contained #
\82»
\82Ì
\95¶
\8e\9a\82ð
\8aÜ
\82ñ
\82Å
\82¢
\82é
\8a¿
\8e\9a\82Ì
\83\8a\83X
\83g
79 if length == v #
\91S
\95\94\82É
\8aç
\82ð
\8fo
\82µ
\82Ä
\82¢
\82½
\82ç
88 db = CHISE::CodesysDB.instance
89 composed = db.get("ids", self)
90 return "" if composed.nil? #
\82È
\82©
\82Á
\82½
\82æ
\82Æ
\81B
91 return "" if composed.char_length == 0 #
\82È
\82É
\82²
\82Æ?
92 return composed if composed.char_length == 1
93 composed.each_char {|ch|
95 return ch if char.has_attribute? #
\82Æ
\82è
\82 \82¦
\82¸
\8dÅ
\8f\89\82É
\82Ý
\82Â
\82©
\82Á
\82½
\82à
\82Ì
\82ð
\95Ô
\82·
\82Æ
\82¢
\82¤
\83k
\83\8b\82¢
\8ed
\97l
97 return "" #attribute
\82ð
\8e\9d\82Â
\82à
\82Ì
\82ª
\88ê
\82Â
\82à
\96³
\82©
\82Á
\82½
\82ç
\81A""
\82É
\82·
\82é
101 #self
\82Å
\82 \82é
\95¶
\8e\9a\97ñ
\82ðIDS
\82¾
\82Æ
\89¼
\92è
\82µ
\81A
\82»
\82ê
\82ð
\8a®
\91S
\82Écompose
\82µ
\82«
\82ç
\82È
\82¢
\82Å
\81A
102 #
\82»
\82Ì
\95\94\95ª
\8fW
\8d\87\82¾
\82¯
\82ð
\82Æ
\82è
\82¾
\82µ
\82Ä
\81Acompose
\89Â
\94\
\82Å
\82 \82ê
\82Î
\82Å
\82«
\82é
\82¾
\82¯compose
\82·
\82é
\81B
103 tree = CHISE::IDS_Tree.new(self)
104 return self if tree.depth <= 1 #sub_nodes
\82ª
\96³
\82¢
\8fê
\8d\87\82Í
\82±
\82±
\82Å
\82³
\82æ
\82È
\82ç
105 tree.sub_nodes.each {|node|
107 next if c.nil? || c == ""
108 # print "#{self} #{node} #{c}\n"
110 n = self.gsub(node, c)
113 return self #
\82¨
\82«
\82©
\82¦
\82ç
\82ê
\82é
\82à
\82Ì
\82ª
\82Ü
\82Á
\82½
\82
\82È
\82©
\82Á
\82½
\82ç
\81A
\8e©
\95ª
\82ð
\82©
\82¦
\82·
\81B