class Flare::Url

Public Class Methods

host(string) click to toggle source

Attempts to parse a string to get the `host` value from it. Typically this value is in the form of `google.com` or `inbox.google.com` with subdomains.

# File lib/flare/url.rb, line 32
def self.host(string)
  parsed(string)&.host
end
is_valid?(url) click to toggle source

Returns if a url is valid after being parsed.

# File lib/flare/url.rb, line 23
def self.is_valid?(url)
  %w(http https).include?(scheme(url))
end
new(url: "", query: {}) click to toggle source
# File lib/flare/url.rb, line 43
def initialize(url: "", query: {})
  @url = url
  @query = query

  @addressable = self.class.parsed(url)
  @addressable.query_values = query
end
parse_host(string) click to toggle source

Uses PublicSuffix to lookup validated domain names.

# File lib/flare/url.rb, line 16
def self.parse_host(string)
  PublicSuffix.parse(host(string))
end
parsed(url) click to toggle source

Base parse method which handles invalid uris.

# File lib/flare/url.rb, line 7
def self.parsed(url)
  Addressable::URI.heuristic_parse(url)
rescue Addressable::URI::InvalidURIError => error
  nil
end
scheme(url) click to toggle source

Returns the scheme (http, https, ftp) for a url.

# File lib/flare/url.rb, line 39
def self.scheme(url)
  parsed(url)&.scheme
end

Public Instance Methods

to_s() click to toggle source
# File lib/flare/url.rb, line 51
def to_s
  @addressable.to_s
end