[#37875] ERB の仕様 — URABE Shyouhei <s-urabe@...>

みなさまはじめまして。

44 messages 2003/07/15
[#37876] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/15

咳といいます。

[#37877] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/15

mput です。

[#37879] Re: ERB の仕様 — m_seki@... 2003/07/15

[#37883] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/16

mput です。

[#37884] Re: ERB の仕様 — m_seki@... 2003/07/16

[#37888] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/16

mput です。

[#37889] Re: ERB の仕様 — m_seki@... 2003/07/16

[#37890] Re: ERB の仕様 — URABE Shyouhei <s-urabe@...> 2003/07/17

mput です。

[#37891] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/19

MoonWolfです。

[#37896] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/20

MoonWolfです。

[#37898] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/20

咳といいます。

[#37900] Re: ERB の仕様 — MoonWolf <moonwolf@...> 2003/07/20

MoonWolfです。

[#37901] Re: ERB の仕様 — Masatoshi SEKI <m_seki@...> 2003/07/20

咳といいます。

[#37906] control user ID / group ID — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

20 messages 2003/07/20
[#37912] Re: control user ID / group ID — YOKOYAMA Takehiro <tac@...> 2003/07/21

[#37913] Re: control user ID / group ID — Hidetoshi NAGAI <nagai@...> 2003/07/21

永井@知能.九工大です.

[#37916] Re: control user ID / group ID — YOKOYAMA Takehiro <tac@...> 2003/07/21

[#37941] multipart/form-dataのためのcgi.rbの修正 — 堀川 久 <vzw00011@...>

こんにちは。

18 messages 2003/07/22
[#37944] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37945] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[#37948] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37951] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[#37953] Re: multipart/form-dataのためのcgi.rbの修正 — matz@... (Yukihiro Matsumoto) 2003/07/23

まつもと ゆきひろです

[#37954] Re: multipart/form-dataのためのcgi.rbの修正 — nobu.nakada@... 2003/07/23

なかだです。

[ruby-list:37962] Re: multipart/form-dataのためのcgi.rbの修正

From: 堀川 久 <vzw00011@...>
Date: 2003-07-23 13:03:09 UTC
List: ruby-list #37962
こんにちは。

最初にヘタレなパッチを投げてしまってすいません。

Yukihiro Matsumoto wrote
in <1058954906.210653.12608.nullmailer@picachu.netlab.jp>
>|> あ、それとも[]の定義の方はそのままで、CGI::Value#initialize
>|> の方でvalueが文字列で無かったらreadで文字列化する方が使いや
>|> すいでしょうか。
>|
>|String以外を気にしなくて済む分、使いやすいかも知れませんね。こ
>|のへんはcgi.rbをよく使う人に聞いてみないと。
>
>というわけでご意見募集。明日昼ごろまでに反応がゼロならば、
>
>  nil -> "" -> wrap

CGIをよく使う人です(CGIばかりともいう)。単に nil -> "" では不味いで
す。

●application/x-www-form-urlencoded の場合、
  [コントロール名] -> 文字列
  [その他] -> ""  

想定される使い方は、
  if cgi["foo"] != ""
    s = cgi["foo"]
    ...
   
●multipart/form-data の場合、
  [コントロール名] -> StringIO or Tempfile
  [その他] -> ???

その他が "" だと、
  if defined?(cgi["bar"].read)    # ここが嫌な感じです。
    len = cgi["bar"].length
    body = cgi["bar"].read
    ...

StringIO.new("") を返すのが一番まともではないでしょうか。こういう使い
方になると思います。

  if cgi["bar"].length > 0
    ...

どうでしょうか。

--- cgi.rb.orig	Wed Jul 23 04:15:43 2003
+++ cgi.rb	Wed Jul 23 22:02:43 2003
@@ -917,6 +917,7 @@
       if ("POST" == env_table['REQUEST_METHOD']) and
          %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n.match(env_table['CONTENT_TYPE'])
         boundary = $1.dup
+        @is_multipart = true
         @params = read_multipart(boundary, Integer(env_table['CONTENT_LENGTH']))
       else
         @params = CGI::parse(
@@ -964,8 +965,12 @@
     def [](key)
       params = @params[key]
       value = params[0]
-      value ||= ""
-      Value.new(value,params)
+      if @is_multipart
+        return value || StringIO("")
+      else
+        value ||= ""
+        Value.new(value,params)
+      end
     end
 
     def keys(*args)

-- 
HORIKAWA Hisashi (in Kanji: 堀川 久)
Netsphere Laboratories  http://www.nslabs.jp/

In This Thread