From: matz@... (Yukihiro Matsumoto) Date: 1997-03-19T18:16:05+09:00 Subject: [ruby-list:2389] Re: Kanji String まつもと ゆきひろです. In message "[ruby-list:2387] Kanji String" on 97/03/19, GOTO Kentaro writes: | |はじめまして、 後藤ともうします。 |jcode.rb がありますが、 print のたびごとに tojis だの tosjis だの |するのはなんかマドロッコシイ気がしてます。 むう,たしかに. |で、 こんな場合 ruby ではどうしたらいいんでしょうか? |print を再定義しようかと思いましたが、もとの print と同じ使い方が |(特に「,」で文字列を並べるのが)できるようにする方法は |よく分かりませんでした。 トップレベルでこういうのを定義するのはどうでしょ? require "kconv" def print(*args) args = args.collect{|elm| elm = Kconv::tojis(elm) if elm.kind_of? String elm } super *args end いや,printを再定義することはないんですけどね.ちょっと再定 義の例を示したかっただけで.普通はこういう感じですか. def jisprint(*args) args = args.collect{|elm| elm = Kconv::tojis(elm) if elm.kind_of? String elm } print *args end |# 気分的には mule の coding-system がバッファごとにコード変数を |# 持ってるみたく、文字列毎にインスタンス変数で文字コードを表して |# 制御できればいいかなとか思ってるんですけど、 それってタコな発想な |# 気もするし。 面白いかも知んないけど,文字列のような粒度のデータ構造にはちょっ と大げさですよね,たぶん.エディタとかをrubyで実装するなら, TextBufferのようなクラスが欲しいなあと思っているので,そうい うクラスには是非そういう機能をつけましょう. # 私がそういうクラスを作ると約束したと思わないように # みなさんへの宿題にしますから ^^;;; |漠然とした質問で申し訳ないのですが、よろしくお願いします。 ヒントになりましたでしょうか? まつもと ゆきひろ /:|)