}.join("")
end
- def map_char(block = Proc.new)
- return unless block_given?
- return self.to_a.map {|ch| (block.call(ch)).to_s }.join("")
- end
-
def map_char!(block = Proc.new)
return unless block_given?
self.replace(self.map_char {|ch| block.call(ch)})
def map_sjis() map_char {|ch| ch.char.map_sjis } end
def glyph_decompose() map_char {|ch| ch.char.glyph_decompose } end
- def decompose() map_char {|ch| ch.char.decompose } end
- def decompose!() self.replace(self.decompose); self; end
+# def decompose!() self.replace(self.decompose); self; end
def nu_decompose_all(level=nil)
level = 0 if level.nil?
de #\82à\82¤\82±\82ê\88È\8fã\95Ï\89»\82Í\96³\82³\82»\82¤\82¾\82¼\82Æ\81B
end
- def decompose_all() map_char {|ch| ch.char.decompose_all } end
def decompose_all!() self.replace(self.decompose_all); self; end
def find() #"\93ú\89_"\81¨"\93Ü"\82Æ\82©\82¢\82¤\8a´\82¶\82Ì\91\80\8dì
str
end
- def compose()
- db = CHISE::CodesysDB.instance
- composed = db.get("ids", self)
- return "" if composed.nil? #\82È\82©\82Á\82½\82æ\82Æ\81B
- return "" if composed.char_length == 0 #\82È\82É\82²\82Æ?
- return composed if composed.char_length == 1
- composed.each_char {|ch|
- char = ch.char
- 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
- }
- return "" #attribute\82ð\8e\9d\82Â\82à\82Ì\82ª\88ê\82Â\82à\96³\82©\82Á\82½\82ç\81A""\82É\82·\82é
- end
-
- def aggregate()
- #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
- #\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
- tree = CHISE::IDS_Tree.new(self)
- return self if tree.depth <= 1 #sub_nodes\82ª\96³\82¢\8fê\8d\87\82Í\82±\82±\82Å\82³\82æ\82È\82ç
- tree.sub_nodes.each {|node|
- c = node.compose
- next if c.nil? || c == ""
- # print "#{self} #{node} #{c}\n"
- # p [self, node, c]
- n = self.gsub(node, c)
- return n.aggregate
- }
- 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
- end
end