class Jackasset::UrlChecker

Attributes

uri[R]
url_string[R]

Public Class Methods

new(url:) click to toggle source
# File lib/jackasset/url_checker.rb, line 7
def initialize(url:)
  @url_string = url
end

Public Instance Methods

call() click to toggle source
# File lib/jackasset/url_checker.rb, line 11
def call
  check_url
end

Private Instance Methods

check_url() click to toggle source
# File lib/jackasset/url_checker.rb, line 17
def check_url
  @uri = URI(URI.escape url_string)
  return invalid_uri_response unless valid_url?
  response = Net::HTTP.get_response uri
  response.uri ||= uri # sometimes the uri is not set
  response
rescue Errno::ECONNREFUSED => e
  rescued_response('Connection refused', e.message)
rescue Errno::EINVAL => e
  rescued_response('Invalid argument', e.message)
rescue => e
  rescued_response(e.class.to_s, e.message)
end
invalid_uri_response() click to toggle source
# File lib/jackasset/url_checker.rb, line 31
def invalid_uri_response
  rescued_response('Invalid URL', 'URL must begin with http')
end
rescued_response(code, message) click to toggle source
# File lib/jackasset/url_checker.rb, line 35
def rescued_response(code, message)
  Jackasset::RecuedResponse.new(
    code: code,
    message: message,
    uri: uri
  )
end
valid_url?() click to toggle source
# File lib/jackasset/url_checker.rb, line 43
def valid_url?
  uri.kind_of?(URI::HTTP) || uri.kind_of?(URI::HTTPS)
end