松尾です。

# 実は使ってないし今までこのスレッドにも出てきてなかったのですが…
# いつか使わせてもらうときが来るのだろうと思ってます。

From: wakou / fsinet.or.jp

> 遅れまして申し訳ありません。仕様変更というのは、現在はフォームやクッキー
> のデータを常に Array で返しているものを、その名前に対するデータが1つ
> の場合は、String にしてはどうかという案です。

僕は全部Arrayがいいです。Meeting2000で使っているルーチンではArrayを返
してます。

検討過程は以下の通り。

--

前提条件
'name1' に対応するフォームがどういう形なのか、つまりデータが一つしかあ
りえないのか複数ありえるのか、プログラマは知っている。


scenario1 テキストボックスの処理
scenario2 チェックボックスの処理

case a Arrayで返ってくる
case b 複数の時はArray、一つの時はString


case a

scenario1
cgi["name1"][0]に対して処理する

scenario2
cgi["name1"].each { ... }


case b

scenario1
cgi["name1"]に対して処理する

scenario2
if cgi["name1"].kind_of?(String)
  cgi["name1"]に対する処理
else
  cgi["name1"].each{ ... }
end

aの方が簡素だと思います。

# 実際の処理に入る前にデータがあるかどうかは、チェックしているものとし
# ます。

'[0]'が確かにちょっと気持ち悪いですが、それは仕方がないでしょう。

--

何か読み間違えていたらごめんなさい。