module BrowserCrawler::UrlTools

Public Class Methods

full_url(uri:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 16
def full_url(uri:)
  path_query = get_path_query(uri: uri)
  if uri.port == 80 || uri.port == 443
    "#{uri.scheme}://#{uri.host}#{uri.path}#{path_query}"
  else
    "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}#{path_query}"
  end.sub(%r{(/)+$}, '')
end
get_path_query(uri:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 25
def get_path_query(uri:)
  uri_fragment = uri.query
  uri_fragment.nil? || (uri_fragment == '') ? nil : "?#{uri.query}"
end
uri(url:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 3
def uri(url:)
  uri!(url: url)
rescue URI::InvalidURIError
  nil
end
uri!(url:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 9
def uri!(url:)
  string_url = url.to_s
  raise URI::InvalidURIError unless string_url =~ /\A#{URI.regexp(%w[http https])}\z/

  URI(string_url)
end

Private Instance Methods

full_url(uri:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 16
def full_url(uri:)
  path_query = get_path_query(uri: uri)
  if uri.port == 80 || uri.port == 443
    "#{uri.scheme}://#{uri.host}#{uri.path}#{path_query}"
  else
    "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}#{path_query}"
  end.sub(%r{(/)+$}, '')
end
get_path_query(uri:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 25
def get_path_query(uri:)
  uri_fragment = uri.query
  uri_fragment.nil? || (uri_fragment == '') ? nil : "?#{uri.query}"
end
uri(url:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 3
def uri(url:)
  uri!(url: url)
rescue URI::InvalidURIError
  nil
end
uri!(url:) click to toggle source
# File lib/browser_crawler/url_tools.rb, line 9
def uri!(url:)
  string_url = url.to_s
  raise URI::InvalidURIError unless string_url =~ /\A#{URI.regexp(%w[http https])}\z/

  URI(string_url)
end