Class: LinkChecker::Async::HTTP::Result

Inherits:
Result
  • Object
show all
Defined in:
lib/ruby-link-checker/async/http/result.rb

Instance Attribute Summary collapse

Attributes inherited from Result

#checker, #method, #options, #result_uri, #uri

Instance Method Summary collapse

Methods inherited from Result

#error, #to_s

Constructor Details

#initialize(uri, method, original_uri, request, response, options) ⇒ Result

Returns a new instance of Result.



35
36
37
38
39
# File 'lib/ruby-link-checker/async/http/result.rb', line 35

def initialize(uri, method, original_uri, request, response, options)
  @request = request
  @response = response && Response.new(response)
  super(uri, method, original_uri, options)
end

Instance Attribute Details

#requestObject

Returns the value of attribute request.



33
34
35
# File 'lib/ruby-link-checker/async/http/result.rb', line 33

def request
  @request
end

#responseObject

Returns the value of attribute response.



33
34
35
# File 'lib/ruby-link-checker/async/http/result.rb', line 33

def response
  @response
end

Instance Method Details

#codeObject



49
50
51
52
53
54
55
# File 'lib/ruby-link-checker/async/http/result.rb', line 49

def code
  @code ||= begin
    response.status
  rescue StandardError
    -1
  end
end

#error?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/ruby-link-checker/async/http/result.rb', line 41

def error?
  false
end

#failure?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/ruby-link-checker/async/http/result.rb', line 45

def failure?
  !success? && !redirect?
end

#redirect?Boolean

Returns:

  • (Boolean)


67
68
69
70
71
# File 'lib/ruby-link-checker/async/http/result.rb', line 67

def redirect?
  return false unless response

  [301, 302, 303, 307, 308].include?(code)
end

#redirect_toObject



61
62
63
64
65
# File 'lib/ruby-link-checker/async/http/result.rb', line 61

def redirect_to
  return nil unless response

  response.headers['location']
end

#request_headersObject



57
58
59
# File 'lib/ruby-link-checker/async/http/result.rb', line 57

def request_headers
  Headers.new(request.headers)
end

#success?Boolean

Returns:

  • (Boolean)


73
74
75
76
77
# File 'lib/ruby-link-checker/async/http/result.rb', line 73

def success?
  return false unless response

  code >= 200 && code <= 299
end