Skip to content

Commit 361e5e9

Browse files
committed
Fix syntax error in retry middleware
Replace retry statements with loop/next pattern to avoid 'Invalid retry without rescue' syntax error in Ruby
1 parent 28b8f1f commit 361e5e9

1 file changed

Lines changed: 20 additions & 18 deletions

File tree

lib/uploadcare/middleware/retry.rb

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,27 @@ def initialize(app, options = {})
2323

2424
def call(env)
2525
retries = 0
26-
begin
27-
response = @app.call(env)
28-
29-
if should_retry?(env, response, nil, retries)
30-
retries += 1
31-
log_retry(env, response[:status], retries, "status code #{response[:status]}")
32-
sleep(calculate_delay(retries, response))
33-
retry
26+
loop do
27+
begin
28+
response = @app.call(env)
29+
30+
if should_retry?(env, response, nil, retries)
31+
retries += 1
32+
log_retry(env, response[:status], retries, "status code #{response[:status]}")
33+
sleep(calculate_delay(retries, response))
34+
next
35+
end
36+
37+
return response
38+
rescue StandardError => e
39+
if should_retry?(env, nil, e, retries)
40+
retries += 1
41+
log_retry(env, nil, retries, e.class.name)
42+
sleep(calculate_delay(retries))
43+
next
44+
end
45+
raise
3446
end
35-
36-
response
37-
rescue StandardError => e
38-
if should_retry?(env, nil, e, retries)
39-
retries += 1
40-
log_retry(env, nil, retries, e.class.name)
41-
sleep(calculate_delay(retries))
42-
retry
43-
end
44-
raise
4547
end
4648
end
4749

0 commit comments

Comments
 (0)