module Roda::RodaPlugins::NotAllowed::RequestMethods
Public Instance Methods
is(*verbs) { || ... }
click to toggle source
Keep track of verb calls inside the block. If there are any verb calls inside the block, but the block returned, assume that the verb calls inside the block did not match, and since there was already a successful terminal match, the request method must not be allowed, so return a 405 response in that case.
Calls superclass method
# File lib/roda/plugins/not_allowed.rb, line 113 def is(*verbs) super(*verbs) do begin @_is_verbs = [] ret = if verbs.empty? yield else yield(*captures) end unless @_is_verbs.empty? response.status = 405 response['Allow'] = @_is_verbs.join(', ') end ret ensure @_is_verbs = nil end end end