Method: Object#eventually

Defined in:
lib/extensions/rhospec/rhospec.rb

#eventually(options = {}, &block) ⇒ Object

Raises:



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
# File 'lib/extensions/rhospec/rhospec.rb', line 202

def eventually options = {}, &block
    raise NO_BLOCK_PASSED if block.nil?
    timeout = options[:timeout] || 5
    delay = options[:delay] || 0.25
    last_error = nil
    begin_time = Time.now
    
    while (Time.now - begin_time) < timeout
        e = call_block(&block)
        if e then
            last_error = e
            sleep delay
            else
            return
        end        
    end
    
    raise last_error
end