Rack::MethodOverride does this for Rack-based apps by using the value of the _method parameter as the http verb.