From: Masao M. <mu...@hi...> - 2004-10-12 15:56:27
|
むとうです。 On Tue, 12 Oct 2004 23:51:25 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > はじめまして,須藤といいます. Rabbitいいですね。期待してます(^^)。 > 既存のライブラリのメンテナンス募集ということなら的外れな事に > なりますが. > > In <200...@hi...> > "[ruby-gnome2-devel-ja] Maintainer wanted" on Tue, 12 Oct 2004 22:57:46 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > また、もし、別のライブラリでメンテナンスしても > > 良いライブラリがあるよ!という人がいらっしゃいましたら > > あわせて募集します。 > > 昨日libgnomeprint (>= 2.8)のバインディングを書きました. > もし取り込んでもらえるならメンテナンスします. おぉ、それはそれは。 ただ、Ruby-GNOME2では、ある程度の一貫性を持たせるため、 結構うるさくルールが決まってます。それでもよろしければ歓迎します。 もちろん、納得行かない場合はあえて統合していただく必要はありません。 これは、決してケンカを売っているわけではなく、純粋に 須藤さんのやりやすいように開発すれば良いでしょうという ことを言っています。GNOME系のライブラリを全てRuby-GNOME2 でメンテナンスしようとは思っていないですし(そんなことしたら 私が死んでしまいます(^^;))、ポリシーの合わないものを総合的にメンテナンス する気もないです。お互いハッピーになる方向ということで。 # もちろん、その場合はRuby-GNOME2のサイトからOther GNOME librariesという # ページを作ってリンクさせていただければありがたいと思います。 > % svn co http://www.cozmixng.org/repos/ruby/libgnomeprint/trunk libgnomeprint ソースを読みました。 さっそくですが、Ruby-GNOME2のルールをふまえ、いくつか質問&お願いがあります。 1. ライブラリ名はlibgnomeprintで良いのか。 結構、他のライブラリはlibを取ったものが多いです。 たとえば、gnome, gnomecanvasなど。 ただ、これはライブラリ作者にお任せしていますので libをつけたままでもかまいません。 2. libgnomeprintuiは含まれない? 単に質問です。 3. mergeする場合は、sample/cozmixchu.pngなど、須藤さんの 別プロジェクトOrientedな名称はご遠慮ください。 4. How to implement Ruby-GNOME2 / Naming and Conversion Rules をご一読ください。 たとえば.... * #get_fooというメソッドで引数がないものは#fooに なります。#set_fooというメソッドで引数が1つのものは#foo= を用意します(これはG_DEF_SETTERS()を使います。) * gnome_print_config_set_boolean/int/double()等のメソッドは 1つにまとめてしまい、メソッドの中で適宜振り分けるようにします。 #例外アリ。 * ライブラリ名は2階層より深くしないようにします。 #一部例外アリ。 Gnome::Print::GPA => Gnome::PrintGPA, Gnome::Print::Job => Gnome::PrintJob * 一部の名称はより、Rubyっぽく(あるいは統一感のあるように) 変更することを推奨します。 たとえば、Gnome::PrintReturnCode#setrgbcolor => set_rgbcolorなど。 かつ、G_DEF_SETTERS()を使ってrgbcolor=メソッドも併せて用意する ようにします。 > ただ,Pangoインターフェイスの部分を書いたので,テキストの属 > 性まわり(libgnomeprint/gnome-font.hとか)は一切手を付けてい > ません. > # Pangoインターフェイスは,libgnomeprint 2.6では無くて,2.8で > # 追加されているので,もしかしたらgnome-font.hとかの部分は将 > # 来無くなるのでは?と勝手に思い込んでしまって,テキストの属 > # 性まわりは書く気がしなかったりします. なるほど。基本的には全体的に網羅するようにしていただきたいのですが、 理由があれば良いと思います。 ただ、その辺を含め、ライブラリ単位にWWWサイト上にStatusページを 書いていただいています。 #これも結構面倒くさいです(^^;)。 > あ,このコードはlibgnomeprint 2.8以降を要求するので, > extconf.rbでライブラリのバージョンをチェックできるとうれしい > です. > > 例えばこんなのがあって > > module PKGConfig > module_function > def or_newer?(pkg, version) > STDOUT.print("checking for #{pkg} version (>= #{version})... ") > STDOUT.flush > mod_version = `#{@@cmd} --modversion #{pkg}`.chomp > result = (mod_version.split(".") <=> version.split(".")) >= 0 > result_message = result ? "yes" : "no" > STDOUT.print "#{result_message}\n" > result > end > end > > こんな風に使えたらどうでしょうか. > > PKGConfig.or_newer?("libgnomeprint-2.2", "2.8") or exit 1 これいいですね。採用する方向で検討します。 #名前はちょっと変えるかも...。 ご検討、よろしくお願いいたします。 -- .:% Masao Mutoh<mu...@hi...> |