Class: HttpMethodNotAllowedMiddleware
- Inherits:
-
Object
- Object
- HttpMethodNotAllowedMiddleware
- Defined in:
- lib/http_method_not_allowed_middleware.rb,
lib/http_method_not_allowed_middleware/version.rb
Constant Summary collapse
- RACK_LOGGER =
'rack.logger'- VERSION =
"0.2.1"
Instance Method Summary collapse
-
#call(env) ⇒ Object
Gracefully return 405 if we get a request with an unsupported HTTP method.
- #debug? ⇒ Boolean
-
#initialize(app, opts = {}) ⇒ HttpMethodNotAllowedMiddleware
constructor
A new instance of HttpMethodNotAllowedMiddleware.
Constructor Details
#initialize(app, opts = {}) ⇒ HttpMethodNotAllowedMiddleware
Returns a new instance of HttpMethodNotAllowedMiddleware.
8 9 10 11 12 13 14 15 |
# File 'lib/http_method_not_allowed_middleware.rb', line 8 def initialize(app, opts = {}) @app = app @debug = opts[:debug] @logger = @logger_proc = nil @logger_proc = opts[:logger] if opts[:logger]&.respond_to?(:call) @logger = opts[:logger] if opts[:logger] && @logger_proc.nil? end |
Instance Method Details
#call(env) ⇒ Object
Gracefully return 405 if we get a request with an unsupported HTTP method
18 19 20 21 22 23 24 25 |
# File 'lib/http_method_not_allowed_middleware.rb', line 18 def call(env) if !ActionDispatch::Request::HTTP_METHODS.include?(env["REQUEST_METHOD"].upcase) debug(env, "ActionController::UnknownHttpMethod: #{env.inspect}") [405, { "Content-Type" => "text/plain" }, ["Method Not Allowed"]] else @app.call(env) end end |
#debug? ⇒ Boolean
27 28 29 |
# File 'lib/http_method_not_allowed_middleware.rb', line 27 def debug? @debug ||= false end |