From: Kouhei S. <ko...@co...> - 2014-10-13 10:34:35
|
須藤です。 In <CAE...@ma...> "[ruby-gnome2-devel-ja] Ruby/GDK3のWindow関連クラスの名前空間について" on Mon, 13 Oct 2014 19:05:32 +0900, Masafumi Yokoyama <my...@gm...> wrote: > 2.2.1以降のGIベースのRuby/GDK3の動作確認をしていて気づいたの > ですが、いくつかAPIが変わってしまっている箇所があるようです。 報告ありがとうございます! > 私が見つけたのは以下です。 > > * 2.2.0以前 > * Gdk::Window::AttributesType > * Gdk::Window::FilterReturn > * Gdk::Window::Gravity > * Gdk::Window::Hints > * Gdk::Window::ModifierType > * Gdk::Window::PARENT_RELATIVE > * Gdk::Window::WMDecoration > * Gdk::Window::WMFunction > > * 2.2.1以降 > * Gdk::WindowAttributesType > * Gdk::FilterReturn > * Gdk::Gravity > * Gdk::WindowHints > * Gdk::ModifierType > * Gdk::PARENT_RELATIVE > * Gdk::WMDecoration > * Gdk::WMFunction > > おそらく全てWindowに関するものなので、2.2.0以前のようにWindow > クラスにぶら下げようと思っているのですが、どうでしょうか? いえ、2.2.1方式にしましょう! 実は、Ruby-GNOME2プロジェクトの名前つけルールというのがある んですが、それではクラスのネストを深くせずに2.2.1のように1レ ベルでフラットにするルールにしています。 http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules#Class%2FModule+names プロジェクトとして統一感があるAPIの方が使いやすいと思うので、 2.2.1のスタイルに寄せて、2.2.0ですでに定義されている名前はめ んどうでない範囲でdeprecatedだけど使える、ようにしましょう。 で、enumやflagsは定数ではなくシンボルで指定するのを推奨にし ましょう。 x.y = Gdk::XXX::YYY # 非推奨 x.y = :yyy # 推奨 これならどのレベルに定数があるかを気にしなくても使えます。 それに、どんな値を指定したい(↑なYYYとかyyy)か、という大事 なところだけに注目できて、コードがスッキリします。 ↑が基本方針として。。。 GDK_PARENT_RELATIVEは悩ましいですね。。。 ところで、これ、なにに使うやつなんですかねぇ。 > ちなみに、2.2.1でも"Window"から始まるenumはすでにWindowクラス > にぶら下がっているのですが、上記のAttributesTypeなどはflags > なのでぶら下がっていないようです。 あぁ、すでにその方向でがんばっちゃっていたんですね。。。 せっかくですけど戻しましょうか。。。 |