class WebFetch::Promise

Attributes

request[R]
response[R]
uid[R]

Public Class Methods

new(client, options = {}) click to toggle source
# File lib/web_fetch/promise.rb, line 7
def initialize(client, options = {})
  @client = client
  @uid = options.fetch(:uid)
  @request = Request.from_hash(options.fetch(:request))
end

Public Instance Methods

complete?() click to toggle source
# File lib/web_fetch/promise.rb, line 24
def complete?
  return false if @response.nil?

  @response.complete?
end
custom() click to toggle source
# File lib/web_fetch/promise.rb, line 20
def custom
  request&.custom
end
error() click to toggle source
# File lib/web_fetch/promise.rb, line 40
def error
  return nil unless complete?

  @response.error
end
fetch(options = {}) click to toggle source
# File lib/web_fetch/promise.rb, line 13
def fetch(options = {})
  return @response if complete?

  wait = options.fetch(:wait, true)
  @response = @client.fetch(@uid, wait: wait)
end
pending?() click to toggle source
# File lib/web_fetch/promise.rb, line 30
def pending?
  return false if @response.nil?

  @response.pending?
end
success?() click to toggle source
# File lib/web_fetch/promise.rb, line 36
def success?
  complete? && @response.success?
end