module Fig::URL

Public Class Methods

append_path_components(base_url, components) click to toggle source

Encodes components and joins with slashes.

# File lib/fig/url.rb, line 19
def self.append_path_components(base_url, components)
  url     = base_url.sub(%r< / \z >x, '')
  encoded = components.map { |component| CGI.escape component }

  return [url, encoded].flatten.join('/')
end
is_url?(url) click to toggle source

From www.rfc-editor.org/rfc/rfc1738.txt

# File lib/fig/url.rb, line 12
def self.is_url?(url)
  # We don't count single-letter "protocols" to allow for Windows drive
  # letters in paths.
  return !! ( url =~ %r< \A [a-z0-9+.-]{2,} : >ix )
end
parse(url) click to toggle source

URI.parse() doesn't like space characters, unlike most of the world.

# File lib/fig/url.rb, line 27
def self.parse(url)
  begin
    return URI.parse(url.gsub ' ', '+')
  rescue URI::InvalidURIError => error
    raise Fig::UserInputError.new \
      %Q<Cannot parse URL "#{url}": #{error.message}>
  end
end