[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001223] Re: DCL toolbox



堀之内です。

ごとけんさん、早速のお返事を有難うございます。

> Takeshi Horinouchi wrote:
> >   * 恐らく出来たメソッドはモジュールに入れるのが収まりがいいと思
> >     うが、モジュール名はどうすべきかは議論の対象になります。上の
> >     例では DCLTool となってます。まずは作った人が勝手にモジュー
> >     ルを作り、ある程度認知されてきたら、共通の枠組み(DCLTool 
> >     といった名前にする)に取り込むのがいいように思います。このため、
> >     各自が作る際には、とりあえず DCLTool という名前を使わないよう
> >     にして頂くといいでしょうか。
> > 
> >     皆さん、整理の仕方&ネーミングポリシーはどうすればいいと思い
> >     ますか。ごとけんさん、何かありません?
> 
> ニッチもそんなに大きくないので個人的にはそこまでうるさくする
> 必要はないと思います。個人的に「これは DCLTool だ」と思えば、
> その名前を使ってもいいんじゃないでしょうか?
> 
> で、 release engineer (つまり堀之内さんですね)が NumRu::DCL 
> を release するときに、作者に一言断れば独断で bundle してい
> いんじゃないですかねえ。
> 
> つまり NumRu::DCL 標準かどうかについては電脳Rubyチームが判断
> するが名前空間を使うことについては許可は不要ってことで。

ああなるほど。 Contribute する人にとっては、どっちにしても全く同
じ名前空間にあって、「標準」化されると RubyDCL に「ついてくる」
かどうかだけが違うということですね。となると、ソースを提供した人
は自分のプログラムを全くいじらずに、標準化した自分のソースが使え
ると。

> 気楽に増やせる雰囲気になってることが大事だと思います。

大事ですね。

> naming 自体については、DCLTool よりも NumRu::DCL::Widget く
> らいがいいかなと思います。要は、DCLと一緒に使うものであるこ
> とが明示されることがポイントなので。

取り込んだ場合、確かに NumRu::DCL の中に入るのが良さそうですね。
ところで、widget って良く聞くのですが、恥ずかしながら私は良くわ
かってません。辞書的は規格品と書いてありますが、どうもその心が
分からない。ここでは、DCL のメソッドを組み合わせた(便利な)複合的
なコマンドを提供するというのが目的ですが、widget は適当でしょう
か。

> >     (余談ですが、本物のキーワード引数でない Hash による疑似キー
> >     ワード引数は、関数定義を見てもどんなオプションがあるかが分
> >     からないのが問題ですね)
> 
> これについては、WEBrick で使っている方法がお勧めかも。デフォ
> ルトのハッシュを用意してそれを見れば良いようにするわけです。
> 
> 例えば、こういう感じ。
> 
>   module Config
>     Canvas = {
>        :width  => 800,  # width of pixmap
>        :height => 600,  # height of pixmap
>     }
>   end
> 
>   class Canvas
>     def initialize(config = {}, default = Config::Canvas)
>       @xxxxxx = default.dup.update(config)
>     end
>   end

なんか良さそうなんですが、モジュールのメソッドでこれを使うにはど
うすればいいんでしょうか。先ほどのカラーバーの例で行けば、

        def color_bar(levels, colors, options)  # ここで options はHash

だったのを、

        def color_bar(levels, colors, options, default=DCL::Tool::ColobarOps)

などとするのでしょうか。とすると、引数デフォルトは、基本的には、
使われないことが前提ですね。