From 2bcc1cc44b8f887a9969a83ed216486dd9677f89 Mon Sep 17 00:00:00 2001 From: Louise Crow Date: Mon, 21 Feb 2011 19:55:41 +0000 Subject: Unpack rack 1.1.0 to vendor gems --- vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb (limited to 'vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb') diff --git a/vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb b/vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb new file mode 100644 index 000000000..0eed29f47 --- /dev/null +++ b/vendor/gems/rack-1.1.0/lib/rack/methodoverride.rb @@ -0,0 +1,27 @@ +module Rack + class MethodOverride + HTTP_METHODS = %w(GET HEAD PUT POST DELETE OPTIONS) + + METHOD_OVERRIDE_PARAM_KEY = "_method".freeze + HTTP_METHOD_OVERRIDE_HEADER = "HTTP_X_HTTP_METHOD_OVERRIDE".freeze + + def initialize(app) + @app = app + end + + def call(env) + if env["REQUEST_METHOD"] == "POST" + req = Request.new(env) + method = req.POST[METHOD_OVERRIDE_PARAM_KEY] || + env[HTTP_METHOD_OVERRIDE_HEADER] + method = method.to_s.upcase + if HTTP_METHODS.include?(method) + env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"] + env["REQUEST_METHOD"] = method + end + end + + @app.call(env) + end + end +end -- cgit v1.2.3