-
Notifications
You must be signed in to change notification settings - Fork 322
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Extract status reasons into separate file
This makes rubocop happy about class length. Probably this needs to be reported to rubocop instead: Hash should be treated as a single line if it's a plain Hash like this one. On another hand, it's now possible to require reasons without Status class definition, e.g. in reel. /cc @sferik @tarcieri
- Loading branch information
Showing
2 changed files
with
74 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
require 'delegate' | ||
|
||
module HTTP | ||
class Response | ||
class Status < ::Delegator | ||
# Code to Reason map | ||
# | ||
# @example Usage | ||
# | ||
# REASONS[400] # => "Bad Request" | ||
# REASONS[414] # => "Request-URI Too Long" | ||
# REASONS[418] # => "I'm a Teapot" | ||
# | ||
# @return [Hash<Fixnum => String>] | ||
REASONS = { | ||
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', | ||
226 => 'IM Used', | ||
300 => 'Multiple Choices', | ||
301 => 'Moved Permanently', | ||
302 => 'Found', | ||
303 => 'See Other', | ||
304 => 'Not Modified', | ||
305 => 'Use Proxy', | ||
306 => 'Reserved', | ||
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 => 'Request Entity Too Large', | ||
414 => 'Request-URI Too Long', | ||
415 => 'Unsupported Media Type', | ||
416 => 'Requested Range Not Satisfiable', | ||
417 => 'Expectation Failed', | ||
418 => "I'm a Teapot", | ||
422 => 'Unprocessable Entity', | ||
423 => 'Locked', | ||
424 => 'Failed Dependency', | ||
426 => 'Upgrade Required', | ||
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', | ||
510 => 'Not Extended' | ||
}.each { |_, v| v.freeze }.freeze | ||
end | ||
end | ||
end |
74ae8cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/cc @sferik @tarcieri see commit message, please
74ae8cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sferik @tarcieri There's another option: moving reasons hash into YAML file:
PS I just don't think that moving constant declaration (in this case) out of main file is good for readability
74ae8cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine. I don't see any reason to use a YAML file.
74ae8cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/cc @bbatsov
74ae8cc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ref: rubocop/rubocop#1077 :D