[#6828] bug in mailread.rb, and: proposal for Mail#to_s — Wybo Dekker <wybo@...>
mailread separates mail messages looking for /^From /.
Hi,
[#6847] Re: Proposed patch for optparse to fix multi line argument handling — Daniel Hobe <hobe@...>
The attached patch fixes a bug in Optparse (at least I think it is a
Hi,
[#6864] ruby 1.8.4 rc breaks alias_method/rails in bad ways — "Ara.T.Howard" <ara.t.howard@...>
Ara.T.Howard wrote:
On Tue, 13 Dec 2005, [ISO-8859-15] Florian Growrote:
On Dec 12, 2005, at 1:19 PM, ara.t.howard@noaa.gov wrote:
On Tue, 13 Dec 2005, James Edward Gray II wrote:
On Dec 12, 2005, at 1:42 PM, ara.t.howard@noaa.gov wrote:
On Dec 12, 2005, at 2:10 PM, James Edward Gray II wrote:
On Tue, 13 Dec 2005, James Edward Gray II wrote:
[#6888] Iconv library - differences between Ruby 1.8.2 and 1.8.4? — "Dave Burt" <dave@...>
Hi,
[#6891] Time.utc! and Time.localtime! — Daniel Hobe <hobe@...>
Writing a script yesterday I found out, much to my surprise, that the
On Dec 14, 2005, at 11:36 AM, Daniel Hobe wrote:
Hi,
[#6894] Dir.tmpdir RDoc — Eric Hodel <drbrain@...7.net>
Speaking of tmpdir, I'm curious why the tmpdir source
[#6906] Add Missing HTTP Headers and Status Codes to Ruby CGI — Paul Duncan <pabs@...>
Hi Everyone,
[#6911] IO.open not calling close in block form? — Daniel Berger <Daniel.Berger@...>
What happened to the block form of IO.open after 1.8.2? It's supposed to
[#6918] change to yaml in 1.8.4 — ara.t.howard@...
-----BEGIN PGP SIGNED MESSAGE-----
On Sat, 17 Dec 2005, Jeremy Kemper wrote:
On Sat, 2005-12-17 at 03:10 +0900, ara.t.howard@noaa.gov wrote:
On Dec 16, 2005, at 2:57 PM, Tom Copeland wrote:
On Sat, 2005-12-17 at 09:02 +0900, Eric Hodel wrote:
On Dec 16, 2005, at 5:30 PM, Tom Copeland wrote:
[#6934] 1.8.x, YAML, and release management — Ryan Davis <ryand-ruby@...>
I'm concerned that 1.8.3's acceptance of non-backwards-compatible
Hi.
Ryan Davis (ryand-ruby@zenspider.com) wrote:
On Saturday 17 December 2005 22:18, Ryan Davis wrote:
Hi.
[#6964] Array Documentation Issues — James Edward Gray II <james@...>
Let's start with:
[#6979] ruby 1.8.4 preview3 — Yukihiro Matsumoto <matz@...>
Hi,
[#6980] Re: ruby 1.8.4 preview3 — Kailden <kailden@...>
matz> I have just put 1.8.4 preview3 on the server.
[#6996] Problems building 1.8.4 with VS8 C++ Express Edition (cl 14.00) — Austin Ziegler <halostatue@...>
Visual Studio C++ 2005 Express Edition (VS 8.0)
Hello,
On 26/12/05, U.Nakamura <usa@garbagecollect.jp> wrote:
>>> __pioinfo structure may have been changed.
Hi.
I have replaced the config/makefile setup for Ruby using C++ Express, and I
Hi,
Hello,
Hi,
On 27/12/05, nobuyoshi nakada <nobuyoshi.nakada@ge.com> wrote:
Hello,
[#7008] Install fails to create directories — noreply@...
Bugs item #3115, was opened at 2005-12-28 05:00
Hi,
[#7028] Ruby 1.8.4 RDoc HTML Cleanups and HTML Language Support — Paul Duncan <pabs@...>
Hi,
Hi.
* H.Yamamoto (ocean@m2.ccsnet.ne.jp) wrote:
* H.Yamamoto (ocean@m2.ccsnet.ne.jp) wrote:
[PATCH] Add Missing HTTP Headers and Status Codes to Ruby CGI
Hi Everyone, Attached is a patch against Ruby 1.8.4 which adds missing HTTP headers, environment variables, and HTTP status codes to CGI.rb. Here's a complete list of additions: HTTP Headers ============ * If-Modified-Since * If-None-Match Environment Variables ===================== * DOCUMENT_ROOT * REMOTE_PORT * SERVER_ADMIN * SERVER_ADDR * UNIQUE_ID * SCRIPT_FILENAME (note that this is different from SCRIPT_NAME) HTTP Status Codes ================= * 100 Continue * 101 Switching Protocols * 201 Created * 202 Accepted * 203 Non-Authoritative Information * 204 No Content * 205 Reset Content * 303 See Other * 305 Use Proxy * 306 (Unused) * 307 Temporary Redirect * 402 Payment Required * 407 Proxy Authentication Required * 408 Request Timeout * 409 Conflict * 410 Gone * 413 Request Entity Too Large * 414 Request-URI Too Long * 415 Unsupported Media Type * 416 Requested Range Not Satisfiable * 417 Expectation Failed * 503 Service Unavailable * 504 Gateway Timeout * 505 HTTP Version Not Supported The patch also updates the documentation at the top of CGI.rb to reflect the new HTTP headers and environment variables. On the off-chance that your mail client mangles the attachment, it's also available at the following URL: http://diff.pablotron.org/ruby-1.8.4-cgi_headers.diff -- Paul Duncan <pabs@pablotron.org> OpenPGP Key ID: 0x82C29562 http://www.pablotron.org/ http://www.paulduncan.org/
Attachments (2)
Only in ruby-1.8.4/lib: .cgi.rb.swp
diff -ur ruby-1.8.4-orig/lib/cgi.rb ruby-1.8.4/lib/cgi.rb
--- ruby-1.8.4-orig/lib/cgi.rb 2005-10-06 21:01:22.000000000 -0400
+++ ruby-1.8.4/lib/cgi.rb 2005-12-15 00:47:42.000000000 -0500
@@ -64,16 +64,19 @@
# attributes of a CGI object. The following is a list of these variables:
#
#
-# AUTH_TYPE HTTP_HOST REMOTE_IDENT
-# CONTENT_LENGTH HTTP_NEGOTIATE REMOTE_USER
-# CONTENT_TYPE HTTP_PRAGMA REQUEST_METHOD
-# GATEWAY_INTERFACE HTTP_REFERER SCRIPT_NAME
-# HTTP_ACCEPT HTTP_USER_AGENT SERVER_NAME
-# HTTP_ACCEPT_CHARSET PATH_INFO SERVER_PORT
-# HTTP_ACCEPT_ENCODING PATH_TRANSLATED SERVER_PROTOCOL
-# HTTP_ACCEPT_LANGUAGE QUERY_STRING SERVER_SOFTWARE
-# HTTP_CACHE_CONTROL REMOTE_ADDR
-# HTTP_FROM REMOTE_HOST
+# AUTH_TYPE HTTP_IF_NONE_MATCH REMOTE_USER
+# CONTENT_LENGTH HTTP_KEEP_ALIVE REQUEST_METHOD
+# CONTENT_TYPE HTTP_NEGOTIATE SCRIPT_FILENAME
+# DOCUMENT_ROOT HTTP_PRAGMA SCRIPT_NAME
+# GATEWAY_INTERFACE HTTP_REFERER SERVER_ADDR
+# HTTP_ACCEPT HTTP_USER_AGENT SERVER_ADMIN
+# HTTP_ACCEPT_CHARSET PATH_INFO SERVER_NAME
+# HTTP_ACCEPT_ENCODING PATH_TRANSLATED SERVER_PORT
+# HTTP_ACCEPT_LANGUAGE QUERY_STRING SERVER_PROTOCOL
+# HTTP_CACHE_CONTROL REMOTE_ADDR SERVER_SIGNATURE
+# HTTP_FROM REMOTE_HOST SERVER_SOFTWARE
+# HTTP_HOST REMOTE_IDENT UNIQUE_ID
+# HTTP_IF_MODIFIED_SINCE REMOTE_PORT
#
#
# For each of these variables, there is a corresponding attribute with the
@@ -293,23 +296,47 @@
# HTTP status codes.
HTTP_STATUS = {
+ "CONTINUE" => "100 Continue",
+ "SWITCHING_PROTOCOLS" => "101 Switching Protocols",
"OK" => "200 OK",
+ "CREATED" => "201 Created",
+ "ACCEPTED" => "202 Accepted",
+ "NON_AUTHORITATIVE_INFORMATION" => "203 Non-Authoritative Information",
+ "NO_CONTENT" => "204 No Content",
+ "RESET_CONTENT" => "205 Reset Content",
"PARTIAL_CONTENT" => "206 Partial Content",
"MULTIPLE_CHOICES" => "300 Multiple Choices",
"MOVED" => "301 Moved Permanently",
"REDIRECT" => "302 Found",
+ "SEE_OTHER" => "303 See Other",
"NOT_MODIFIED" => "304 Not Modified",
+ "USE_PROXY" => "305 Use Proxy",
+ "(UNUSED)" => "306 (Unused)",
+ "TEMPORARY_REDIRECT" => "307 Temporary Redirect",
"BAD_REQUEST" => "400 Bad Request",
"AUTH_REQUIRED" => "401 Authorization Required",
+ "PAYMENT_REQUIRED" => "402 Payment Required",
"FORBIDDEN" => "403 Forbidden",
"NOT_FOUND" => "404 Not Found",
"METHOD_NOT_ALLOWED" => "405 Method Not Allowed",
"NOT_ACCEPTABLE" => "406 Not Acceptable",
+ "PROXY_AUTHENTICATION_REQUIRED" => "407 Proxy Authentication Required",
+ "REQUEST_TIMEOUT" => "408 Request Timeout",
+ "CONFLICT" => "409 Conflict",
+ "GONE" => "410 Gone",
"LENGTH_REQUIRED" => "411 Length Required",
"PRECONDITION_FAILED" => "412 Rrecondition Failed",
+ "REQUEST_ENTITY_TOO_LARGE" => "413 Request Entity Too Large",
+ "REQUEST_URI_TOO_LONG" => "414 Request-URI Too Long",
+ "UNSUPPORTED_MEDIA_TYPE" => "415 Unsupported Media Type",
+ "REQUESTED_RANGE_NOT_SATISFIABLE" => "416 Requested Range Not Satisfiable",
+ "EXPECTATION_FAILED" => "417 Expectation Failed",
"SERVER_ERROR" => "500 Internal Server Error",
"NOT_IMPLEMENTED" => "501 Method Not Implemented",
"BAD_GATEWAY" => "502 Bad Gateway",
+ "SERVICE_UNAVAILABLE" => "503 Service Unavailable",
+ "GATEWAY_TIMEOUT" => "504 Gateway Timeout",
+ "HTTP_VERSION_NOT_SUPPORTED" => "505 HTTP Version Not Supported",
"VARIANT_ALSO_VARIES" => "506 Variant Also Negotiates"
}
@@ -922,19 +949,22 @@
#
module QueryExtension
- %w[ CONTENT_LENGTH SERVER_PORT ].each do |env|
+ %w[ CONTENT_LENGTH SERVER_PORT REMOTE_PORT ].each do |env|
define_method(env.sub(/^HTTP_/n, '').downcase) do
(val = env_table[env]) && Integer(val)
end
end
- %w[ AUTH_TYPE CONTENT_TYPE GATEWAY_INTERFACE PATH_INFO
- PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST
- REMOTE_IDENT REMOTE_USER REQUEST_METHOD SCRIPT_NAME
- SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE
+ %w[ AUTH_TYPE CONTENT_TYPE DOCUMENT_ROOT GATEWAY_INTERFACE
+ PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR
+ REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST_METHOD
+ SCRIPT_FILENAME SCRIPT_NAME SERVER_ADDR SERVER_ADMIN
+ SERVER_NAME SERVER_PROTOCOL SERVER_SOFTWARE SERVER_SIGNATURE
+ UNIQUE_ID
HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE HTTP_CACHE_CONTROL HTTP_FROM HTTP_HOST
+ HTTP_IF_MODIFIED_SINCE HTTP_IF_NONE_MATCH HTTP_KEEP_ALIVE
HTTP_NEGOTIATE HTTP_PRAGMA HTTP_REFERER HTTP_USER_AGENT ].each do |env|
define_method(env.sub(/^HTTP_/n, '').downcase) do
env_table[env]