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