Sha256: 8a9f46ea2df3106af851a58e396d9200ae546966138ed1cc822fea41af829e4b
Contents?: true
Size: 739 Bytes
Versions: 72
Compression:
Stored size: 739 Bytes
Contents
module Vagrant module Util module Retryable # Retries a given block a specified number of times in the # event the specified exception is raised. If the retries # run out, the final exception is raised. # # This code is adapted slightly from the following blog post: # http://blog.codefront.net/2008/01/14/retrying-code-blocks-in-ruby-on-exceptions-whatever/ def retryable(opts=nil) opts = { :tries => 1, :on => Exception }.merge(opts || {}) begin return yield rescue *opts[:on] if (opts[:tries] -= 1) > 0 sleep opts[:sleep].to_f if opts[:sleep] retry end raise end end end end end
Version data entries
72 entries across 72 versions & 8 rubygems