Sha256: 86830605579bdaf5c168b4d53ae4579a057b7ba7840226e973a1671534b946b8

Contents?: true

Size: 623 Bytes

Versions: 163

Compression:

Stored size: 623 Bytes

Contents

module Beaker
  module Shared
    module Repetition

      def repeat_for seconds, &block
        timeout = Time.now + seconds
        done = false
        until done or timeout < Time.now do
          done = block.call
        end
        return done
      end

      def repeat_fibonacci_style_for attempts, &block
        done = false
        attempt = 1
        last_wait, wait = 0, 1
        while not done and attempt <= attempts do
          done = block.call
          attempt += 1
          sleep wait
          last_wait, wait = wait, last_wait + wait
        end
        return done
      end
    end
  end
end

Version data entries

163 entries across 163 versions & 1 rubygems

Version Path
beaker-2.27.0 lib/beaker/shared/repetition.rb
beaker-2.26.0 lib/beaker/shared/repetition.rb
beaker-2.25.0 lib/beaker/shared/repetition.rb
beaker-2.24.0 lib/beaker/shared/repetition.rb
beaker-2.23.0 lib/beaker/shared/repetition.rb
beaker-1.21.0 lib/beaker/shared/repetition.rb
beaker-2.22.0 lib/beaker/shared/repetition.rb
beaker-2.21.0 lib/beaker/shared/repetition.rb
beaker-2.20.0 lib/beaker/shared/repetition.rb
beaker-2.19.0 lib/beaker/shared/repetition.rb
beaker-2.18.3 lib/beaker/shared/repetition.rb
beaker-2.18.2 lib/beaker/shared/repetition.rb
beaker-2.18.1 lib/beaker/shared/repetition.rb
beaker-2.18.0 lib/beaker/shared/repetition.rb
beaker-2.17.0 lib/beaker/shared/repetition.rb
beaker-2.16.0 lib/beaker/shared/repetition.rb
beaker-2.15.1 lib/beaker/shared/repetition.rb
beaker-2.15.0 lib/beaker/shared/repetition.rb
beaker-2.14.1 lib/beaker/shared/repetition.rb
beaker-2.14.0 lib/beaker/shared/repetition.rb