高橋征義です。

Minero Aoki <aamine / dp.u-netsurf.ne.jp>さん:
> ああー、またもバグですね。
> 高橋さんには本当に何度もご迷惑おかけします。

いえいえ。ほんとはこっちでpatchが作れればいいんですけど(_o_)

> 意味はあります。クラスはインスタンス変数を持てるので、たとえば
> 
> class A
>   @a = 'ok'
>   def A.print_a
>     puts @a
>   end
> end
> 
> A.print_a
> 
> は ok を表示します。まずかったのは、継承してるのに @err を
> 再設定していなかったことです。

あ、なるほど。クラスメソッドで使うわけですね。
どうもクラスそのものを使い回すというか、メソッドがクラスを
返したりするのには慣れてなくて。

> ところで、現在の仕様では 302 とかになると例外になってしまうんですが、
> これはどうなるのが妥当だと思われますか?そのような場合でも後に
> エンティティボディが続くことがあるので本体も読みこまなければ
> いけないんですが、今はそれをさぼっています。可能性としては
> 
> 1  本体を読みこんだあとに例外
> 2  本体を要求するメソッド(get post)で本体がない場合のみ例外
> 3  簡易メソッド(get head post)は例外。get2 post2 などは例外なし
> 4  例外は一切出さない
> 
> くらいかなあ、と思うんですが。(実装はどれも簡単です。)

2と3は分かりにくいような気がします。こういうところで「場合」が
入るのはめんどくさそう。
となると1か4かですが、これは趣味というか、流派?によるような。
ステータスコードによる判断はタイミングが明確なので、どっちでも
それなりには使えるとは思います。

## 簡単だったら両方作ってくらべてみる、とか :-)

で、たとえば現状のまま、例外をあげるとして、302が返ってきた場合の
Location: の情報を取り出す場合、どうすればいいんでしょうか?
どこにメッセージヘッダの情報が入っているのか分からないのですが……。

高橋征義 (TAKAHASHI Masayoshi)       Email:maki / inac.co.jp