助田です.まだ迷ってます.

In message "[ruby-list:22342] Re: runit"
    on 00/05/07, Masatoshi SEKI <m_seki / mva.biglobe.ne.jp> writes:

0.0.6 を公開した後で,一晩考えて,true でないと駄目というのは
ちょっと行きすぎだったかと思い始めています.

咳さんの

> assert() は真であることの検査をする方がよいと思います。(偽であれば例外)
> Rubyの条件判断の基礎(primitive!?)な部分と同じだから、というのが理由です。
> (充分だし一貫性がある)

というのが適当ではないかと思い始めているんです.

  if condition
    result = "ok"
  else
    result = "not ok"
  end

で result が "ok" なのに assert(condition) が例外になる場合がある
というのは,かえって混乱の元ではないかと.

で,

+ assert(condition)
  condition が「偽」の場合に例外になる.

    unless condition
      raise AssertionFailedError
    end

+ assert_true(conditon)
  condition が true でない場合に例外になる.

   if condition != true
     raise AssertionFailedError
   end

+ assert_false(condition)
  condition が false でない場合に例外になる.

   if condition != false
     raise AssertionFailedError
   end

+ assert_nil(condition)
  condition が nil でない場合に例外になる.

   if !condition.nil?
     raise AssertionFailedError
   end

+ assert_not_nil(condition)
  condition が nil の場合に例外になる.

   if condition.nil?
     raise AssertionFailedError
   end

と5つ用意しておくというのを考えたんですけど,どう思います?
(assert_nil と assert_not_nil は既に 0.0.6 にあるので
 assert_true と assert_false を追加して
 咳さんの案を assert の仕様として
 石橋さんの案は assert_true として別に用意する
 というものです.)

> と書いてたら[ruby-list:22332]で助田さんがassert()の仕様を
> 決定されたようですね。

決定というほどのものではなく,このように私はまだ迷っています.
とりあえずこうしてみたという程度に考えてください.
反対意見や他の案などいろいろ聞かせていただけるとありがたいです.

  助田 雅紀 <CQN02273 / nifty.ne.jp>