[前][次][番号順一覧][スレッド一覧]

ruby-changes:46686

From: naruse <ko1@a...>
Date: Sat, 20 May 2017 01:06:29 +0900 (JST)
Subject: [ruby-changes:46686] naruse:r58801 (trunk): Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]

naruse	2017-05-20 01:06:25 +0900 (Sat, 20 May 2017)

  New Revision: 58801

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=58801

  Log:
    Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]
    
    Note that 418 I'm a teapot doesn't exist because RFC 2324 and
    RFC 7168 are not registered in IANA repository.
    https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

  Added files:
    trunk/lib/net/http/status.rb
  Modified files:
    trunk/NEWS
Index: NEWS
===================================================================
--- NEWS	(revision 58800)
+++ NEWS	(revision 58801)
@@ -78,7 +78,8 @@ with all sufficient information, see the https://github.com/ruby/ruby/blob/trunk/NEWS#L78
 * Net::HTTP
   * Add more HTTP status classes
 
-* Net::HTTP
+  * Net::HTTP::STATUS_CODES is added as HTTP Status Code Repository [Misc #12935]
+
   * Net::HTTP#proxy_user and Net::HTTP#proxy_pass now reflects http_proxy
     environment variable if the system's environment variable is multiuser
     safe. [Bug #12921]
Index: lib/net/http/status.rb
===================================================================
--- lib/net/http/status.rb	(nonexistent)
+++ lib/net/http/status.rb	(revision 58801)
@@ -0,0 +1,81 @@ https://github.com/ruby/ruby/blob/trunk/lib/net/http/status.rb#L1
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+if $0 == __FILE__
+  require 'open-uri'
+  IO.foreach(__FILE__) do |line|
+    puts line
+    break if line.start_with?('end')
+  end
+  puts
+  puts "Net::HTTP::STATUS_CODES = {"
+  url = "https://www.iana.org/assignments/http-status-codes/http-status-codes-1.csv"
+  URI(url).read.each_line do |line|
+    code, mes, = line.split(',')
+    next if ['(Unused)', 'Unassigned', 'Description'].include?(mes)
+    puts "  #{code} => '#{mes}',"
+  end
+  puts "}"
+end
+
+Net::HTTP::STATUS_CODES = {
+  100 => 'Continue',
+  101 => 'Switching Protocols',
+  102 => 'Processing',
+  200 => 'OK',
+  201 => 'Created',
+  202 => 'Accepted',
+  203 => 'Non-Authoritative Information',
+  204 => 'No Content',
+  205 => 'Reset Content',
+  206 => 'Partial Content',
+  207 => 'Multi-Status',
+  208 => 'Already Reported',
+  226 => 'IM Used',
+  300 => 'Multiple Choices',
+  301 => 'Moved Permanently',
+  302 => 'Found',
+  303 => 'See Other',
+  304 => 'Not Modified',
+  305 => 'Use Proxy',
+  307 => 'Temporary Redirect',
+  308 => 'Permanent Redirect',
+  400 => 'Bad Request',
+  401 => 'Unauthorized',
+  402 => 'Payment Required',
+  403 => 'Forbidden',
+  404 => 'Not Found',
+  405 => 'Method Not Allowed',
+  406 => 'Not Acceptable',
+  407 => 'Proxy Authentication Required',
+  408 => 'Request Timeout',
+  409 => 'Conflict',
+  410 => 'Gone',
+  411 => 'Length Required',
+  412 => 'Precondition Failed',
+  413 => 'Payload Too Large',
+  414 => 'URI Too Long',
+  415 => 'Unsupported Media Type',
+  416 => 'Range Not Satisfiable',
+  417 => 'Expectation Failed',
+  421 => 'Misdirected Request',
+  422 => 'Unprocessable Entity',
+  423 => 'Locked',
+  424 => 'Failed Dependency',
+  426 => 'Upgrade Required',
+  428 => 'Precondition Required',
+  429 => 'Too Many Requests',
+  431 => 'Request Header Fields Too Large',
+  451 => 'Unavailable For Legal Reasons',
+  500 => 'Internal Server Error',
+  501 => 'Not Implemented',
+  502 => 'Bad Gateway',
+  503 => 'Service Unavailable',
+  504 => 'Gateway Timeout',
+  505 => 'HTTP Version Not Supported',
+  506 => 'Variant Also Negotiates',
+  507 => 'Insufficient Storage',
+  508 => 'Loop Detected',
+  510 => 'Not Extended',
+  511 => 'Network Authentication Required',
+}

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]