From: Masao M. <mu...@hi...> - 2006-12-10 06:20:08
|
むとうです。 On Sun, 10 Dec 2006 13:07:24 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Unicode Manipulation" on Sun, 10 Dec 2006 01:16:29 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > GLib::Unicode::*やGLib::UnicodeBreak::*などを > > > GLib::UNICODE_*, GLib::UNICODE_BREAK_*としても定義しましたが, > > > これらは定義しなかった方がよかったでしょうか.もしそうなら直 > > > > それもそうなんですけど > > GLib::UNICODE_*などは削除しました. > > > それもそうなんですけど、メソッドの定義って > > 以下のような感じじゃないんでしたっけ? > > > > g_unichar_foo => GLib::Unichar.foo > > g_unicode_foo => GLib::Unicode.foo > > g_utf8_foo => GLib::Utf8.foo > > > > GLibトップレベルで、文字操作関連がやたらと > > 増えるのがちょっと抵抗があるのですが・・・。 > > GLib.utf8_validateがあったのでそれに従いました.あと, > GLib::UnicodeのようにG_DEF_CLASSしたものに > rb_define_singleton_methodするのに抵抗があったというのもあり > ます. 今回の実装を追加することでGLib.utf8_validateはDeprecatedにしましょう。 > 以下のように修正しました. > > GLib.unichar_* -> GLib::UniChar.* > GLib.unicode_* -> GLib::Unicode.* > GLib.utf8_* -> GLib::UTF8.* > GLib.utf16_* -> GLib::UTF16.* > GLib.ucs4_* -> GLib::UCS4.* > > Unicharは気持ち悪かったのでUniCharにしました.UniCharはCocoa > などでも使われているようです. > Utf8, Utf16, Ucs4は気持ち悪かったので大文字にしました. > > UnicharやUtf8の方がよいのであれば,面倒かとは思いますが修正 > してやってください. いや、まぁ、そこは特にこだわりは無いので須藤さんの案のままで良いです。 > > #それぞれをClassに定義するのはさすがにやりすぎな気がしますので > > #Moduleのままで良いとは思うのですが。 > > GLib::UnicodeはClassのままで他はModuleにしました. うーん、これは気持ち悪いですね。 何が気持ち悪いかというと、GLib::Unicodeがイニシャライズされた実体が Unicodeの1キャラクタを示す(あるいはStringを示す)ものではなく、 単なるGLib::Enumであるところです。 おっと、良く見るとGLib::Unicodeに定義している定数ってGUnicodeTypeですね。 これはRuby-GNOME2的に宣言するとGLib::Unicode::TypeというGLib::Enumに なりますよね? ちょっとGLib::Enum周りの宣言の仕方が他(Ruby/GTK等)と異なるので そこはあわせていただければと思います。 まとめますと、以下のようにするのが良いかと思いますがどうでしょうか。 ・GLib::Unicode -> Moduleとして定義。UTF8などと同様にこちらに関数を持たせる。 ・GLib::Unicode::Type -> g_unicode_type_get_type()のGEnum GLib::Unicode::CONTROL等も定義。(Ruby/GTK等と同じ方法) ・GLib::UnicodeBreak -> GLib::Unicode::BreakType #元のenumがType付きですよね。 GLib::Unicode::BREAK_* も定義。(Ruby/GTK等と同じ方法) ・GLib::UnicodeScript -> GLib::Unicode::Script GLib::Unicode::SCRIPT_* も定義。(Ruby/GTK等と同じ方法) #これ、G_TYPE_UNICODE_SCRIPT_TYPEとなっていますが、 #G_TYPE_UNICODE_SCRIPTってこと(_TYPEは無い)はないですか? #通常、G_TYPE_の後はその構造体/Enum等の名称がそのままくるはずなのですが・・・。 #(まだ、2.14.0試していません。) |