6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/grape/idempotency/middleware/error.rb', line 6
def run_rescue_handler(handler, error)
if handler.instance_of?(Symbol)
raise NoMethodError, "undefined method '#{handler}'" unless respond_to?(handler)
handler = public_method(handler)
end
response = handler.arity.zero? ? instance_exec(&handler) : instance_exec(error, &handler)
if response.is_a?(Rack::Response)
update_idempotency_error_with(error, response)
response
else
run_rescue_handler(:default_rescue_handler, Grape::Exceptions::InvalidResponse.new)
end
end
|