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

Version Path
bmhatfield-vagrant-1.0.10 lib/vagrant/util/retryable.rb
bmhatfield-vagrant-1.0.9 lib/vagrant/util/retryable.rb
bmhatfield-vagrant-1.0.8 lib/vagrant/util/retryable.rb
bmhatfield-vagrant-1.0.7 lib/vagrant/util/retryable.rb
vagrantup-1.0.7 lib/vagrant/util/retryable.rb
vagrantup-1.0.6 lib/vagrant/util/retryable.rb
vagrantup-1.0.5 lib/vagrant/util/retryable.rb
vagrantup-1.0.4 lib/vagrant/util/retryable.rb
vagrantup-1.0.3 lib/vagrant/util/retryable.rb
vagrantup-1.0.2 lib/vagrant/util/retryable.rb
vagrantup-1.0.1 lib/vagrant/util/retryable.rb
vagrantup-1.0.0 lib/vagrant/util/retryable.rb
vagrantup-0.9.99.2 lib/vagrant/util/retryable.rb
vagrantup-0.9.99.1 lib/vagrant/util/retryable.rb
vagrantup-0.9.7 lib/vagrant/util/retryable.rb
vagrantup-0.9.6 lib/vagrant/util/retryable.rb
vagrantup-0.9.5 lib/vagrant/util/retryable.rb
vagrantup-0.9.4 lib/vagrant/util/retryable.rb
vagrantup-0.9.3 lib/vagrant/util/retryable.rb
vagrantup-0.9.2 lib/vagrant/util/retryable.rb