Rails HTTP Status Code to Symbol Mapping

Recently I had been wondering what the complete list of HTTP status code symbols was in Rails. Searching through Rails didn't yield any results for a symbol like :unprocessable_entity. Digging around in the Rails source code I found the file actionpack/lib/action_controller/status_codes.rb, which has the mapping of the status code to the status message. Then Rails defines the symbol to status code mapping dynamically from the status message.

The symbol used is an underscored version of the status message with no spaces. A quick Ruby script yields the following mapping:

Status CodeStatus MessageSymbol
100Continue:continue
101Switching Protocols:switching_protocols
102Processing:processing
200OK:ok
201Created:created
202Accepted:accepted
203Non-Authoritative Information:non_authoritative_information
204No Content:no_content
205Reset Content:reset_content
206Partial Content:partial_content
207Multi-Status:multi_status
226IM Used:im_used
300Multiple Choices:multiple_choices
301Moved Permanently:moved_permanently
302Found:found
303See Other:see_other
304Not Modified:not_modified
305Use Proxy:use_proxy
307Temporary Redirect:temporary_redirect
400Bad Request:bad_request
401Unauthorized:unauthorized
402Payment Required:payment_required
403Forbidden:forbidden
404Not Found:not_found
405Method Not Allowed:method_not_allowed
406Not Acceptable:not_acceptable
407Proxy Authentication Required:proxy_authentication_required
408Request Timeout:request_timeout
409Conflict:conflict
410Gone:gone
411Length Required:length_required
412Precondition Failed:precondition_failed
413Request Entity Too Large:request_entity_too_large
414Request-URI Too Long:request_uri_too_long
415Unsupported Media Type:unsupported_media_type
416Requested Range Not Satisfiable:requested_range_not_satisfiable
417Expectation Failed:expectation_failed
422Unprocessable Entity:unprocessable_entity
423Locked:locked
424Failed Dependency:failed_dependency
426Upgrade Required:upgrade_required
500Internal Server Error:internal_server_error
501Not Implemented:not_implemented
502Bad Gateway:bad_gateway
503Service Unavailable:service_unavailable
504Gateway Timeout:gateway_timeout
505HTTP Version Not Supported:http_version_not_supported
507Insufficient Storage:insufficient_storage
510Not Extended:not_extended

ActiveMerchant on GitHub

The ActiveMerchant source repository has made the move over to GitHub. I think the social development GitHub provides will be a perfect fit for ActiveMerchant. We’ve also moved the ActiveMerchant bug tracker over to Lighthouse.

If you’re looking to get up to speed on payment processing and payment processing with ActiveMerchant then be sure to check out my PeepCode ActiveMerchant PDF which was given a very favorable review at RubyInside.

Shopify.info Redesigned

Daniel, our designer, has just finished the redesign of the Shopify brochure page and it looks fantastic. The page features a beautiful redesign, fantastic video overview of some of Shopify's features, as well as profiles and interviews with some of Shopify's highest profile clients. If you're in the market for an e-commerce store or if you're into eye candy then you'll definitely want to go and check it out.