Also how do you make a PUT or PATCH request from programming languages like Actionscript (and quite possibly Javascript though I'm not sure) which only support POST and GET requests currently?
Rack::MethodOverride does this for Rack-based apps by using the value of the _method parameter as the http verb.