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

[dennou-ruby:001222] Re: DCL toolbox



At Mon, 24 Jun 2002 15:06:51 +0900,
Takeshi Horinouchi wrote:
>   * 恐らく出来たメソッドはモジュールに入れるのが収まりがいいと思
>     うが、モジュール名はどうすべきかは議論の対象になります。上の
>     例では DCLTool となってます。まずは作った人が勝手にモジュー
>     ルを作り、ある程度認知されてきたら、共通の枠組み(DCLTool 
>     といった名前にする)に取り込むのがいいように思います。このため、
>     各自が作る際には、とりあえず DCLTool という名前を使わないよう
>     にして頂くといいでしょうか。
> 
>     皆さん、整理の仕方&ネーミングポリシーはどうすればいいと思い
>     ますか。ごとけんさん、何かありません?

ニッチもそんなに大きくないので個人的にはそこまでうるさくする
必要はないと思います。個人的に「これは DCLTool だ」と思えば、
その名前を使ってもいいんじゃないでしょうか?

で、 release engineer (つまり堀之内さんですね)が NumRu::DCL 
を release するときに、作者に一言断れば独断で bundle してい
いんじゃないですかねえ。

つまり NumRu::DCL 標準かどうかについては電脳Rubyチームが判断
するが名前空間を使うことについては許可は不要ってことで。

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

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

>     (余談ですが、本物のキーワード引数でない 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

なお、Hash#update とはこういうものです:

  % ri update
  ------------------------------------------------------------ Hash#update
       hsh.update( anOtherHash ) -> hsh
  ------------------------------------------------------------------------
       Adds the contents of anOtherHash to hsh, overwriting entries with
       duplicate keys with those from anOtherHash.
          h1 = { "a" => 100, "b" => 200 }
          h2 = { "b" => 254, "c" => 300 }
          h1.update(h2)   #=> {"a"=>100, "b"=>254, "c"=>300}

  % 

-- Gotoken