[#29374] nil.to_s — Shugo Maeda <shugo@...>

前田です。

59 messages 2006/09/01
[#29375] Re: nil.to_s — "U.Nakamura" <usa@...> 2006/09/01

こんにちは、なかむら(う)です。

[#29380] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29387] Re: nil.to_s — Shugo Maeda <shugo@...> 2006/09/01

前田です。

[#29390] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29398] Re: nil.to_s — "NARUSE, Yui" <naruse@...> 2006/09/01

成瀬です。

[#29400] Re: nil.to_s — Yukihiro Matsumoto <matz@...> 2006/09/01

まつもと ゆきひろです

[#29491] symbol and string — Tanaka Akira <akr@...>

open-uri で :proxy=>nil という指定を行うと、以下のようにエラーになります。

33 messages 2006/09/05
[#29499] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/05

まつもと ゆきひろです

[#29500] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/05

In article <1157470154.047826.13379.nullmailer@x31.priv.netlab.jp>,

[#29503] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29504] Re: symbol and string — Tanaka Akira <akr@...> 2006/09/06

In article <1157505538.340126.8472.nullmailer@x31.priv.netlab.jp>,

[#29507] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/06

まつもと ゆきひろです

[#29512] Re: symbol and string — keiju@... (石塚圭樹) 2006/09/06

けいじゅ@いしつかです.

[#29529] Re: symbol and string — SASADA Koichi <ko1@...> 2006/09/08

 ささだです。

[#29530] Re: symbol and string — Yukihiro Matsumoto <matz@...> 2006/09/08

まつもと ゆきひろです

[ruby-dev:29610] Re: cgi.rbのformの挙動

From: "Nobuyoshi Nakada" <nobu@...>
Date: 2006-09-26 08:26:47 UTC
List: ruby-dev #29610
なかだです。

At Tue, 26 Sep 2006 13:29:45 +0900,
Nobuyoshi Nakada wrote in [ruby-dev:29606]:
> > たぶんattributeになるHashすべてをどこかで正規化する必要があ
> > るんでしょうね。いつやるかなあ。
>
> cgi.rbを捨てるとき?

思いっきり間違えてました。


Index: lib/cgi.rb
===================================================================
RCS file: /pub/cvs/ruby/lib/cgi.rb,v
retrieving revision 1.68.2.18
diff -U 2 -p -u -r1.68.2.18 cgi.rb
--- lib/cgi.rb	23 Sep 2006 12:47:11 -0000	1.68.2.18
+++ lib/cgi.rb	26 Sep 2006 08:01:38 -0000
@@ -1229,4 +1229,24 @@ class CGI
   module TagMaker # :nodoc:

+    module AttributeChecker
+      def attribute_check(attributes)
+        canonical = {}
+        attributes.each do |key, value|
+          if old = canonical[upper = key.upcase]
+            raise ArgumentError,
+              "duplcate keys in different cases: #{old} and #{key}"
+          end
+          canonical[upper] = key
+        end
+      end
+    end
+
+    def self.extend_object(obj)
+      super
+      class << obj
+        include(AttributeChecker)
+      end
+    end
+
     # Generate code for an element with required start and end tags.
     #
@@ -1248,4 +1268,5 @@ class CGI
     def nOE_element_def(element, append = nil)
       s = <<-END
+          attribute_check(attributes)
           "<#{element.upcase}" + attributes.collect{|name, value|
             next unless value
@@ -1543,10 +1564,6 @@ class CGI
                        "ENCTYPE" => enctype }
                    else
-                     unless method.has_key?("METHOD")
-                       method["METHOD"] = "post"
-                     end
-                     unless method.has_key?("ENCTYPE")
-                       method["ENCTYPE"] = enctype
-                     end
+                     method["METHOD"] ||= "post"
+                     method["ENCTYPE"] ||= enctype
                      method
                    end
@@ -1636,5 +1653,10 @@ class CGI
       elsif "PRETTY" == attributes
         attributes = { "PRETTY" => true }
+      elsif attributes.kind_of?(Hash)
+        attributes["PRETTY"] ||= false
+      else
+        raise ArgumentError, "Hash expected (#{attributes.class})"
       end
+      attribute_check(attributes)
       pretty = attributes.delete("PRETTY")
       pretty = "  " if true == pretty


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread