Kakasiをrubyでつかう(その後)

Pocket

ruby-kakasiを導入してみたのですが、どうも動きがおかしいことに気づきました

どういう時におかしいかというと連続で違う引数で呼び出す際にどうやら2回めの呼び出し時の引数が聞いていないような感じです。しかもローマ字に変換する際にヘボン式か訓令式か変更した場合のみです

こんなコード

結果がこれ

最初kakasi-rubyがおかしいのかと思いソースコードをいじってみていたのですがどうやらそうではなく、本体側がおかしいことがわかりました。

このぶぶん

どうも訓令式とヘボン式のテーブルを切り替えて使っているようなのですが、高速化のためか一文字目の際にテーブルを作成し、それ以降はキャッシュを見るような感じになっています。しかしstatic変数で管理しているため、Library使用時にはこれがクリアされず、2回めのライブラリ呼び出し時には前回のキャッシュをそのまま使っていたようです

とりあえずキャッシュ部分を削除してみました。

本来ならばきちんと治すべきなのですが、、、、、

本体修正後rubyを実行

期待通りとなりました