Sha256: d0c196377a53deeb7fcdbdc99b2e04fb8f720f81f71c66e66e6682e1255bd29a
Contents?: true
Size: 498 Bytes
Versions: 1
Compression:
Stored size: 498 Bytes
Contents
# frozen_string_literal: true module UrlShortly class Generator BASE_URL = "http://short.ly/" def self.shorten(url) raise Error, "URL cannot be empty" if url.to_s.empty? raise Error, "Invalid URL format" if !valid_url?(url) id = Base62.encode(url.hash.abs) "#{BASE_URL}#{id}" end def self.valid_url?(url) uri = URI.parse(url) uri.is_a?(URI::HTTP) || uri.is_a?(URI::HTTPS) rescue URI::InvalidURIError false end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
url_shortly-0.1.0 | lib/url_shortly/generator.rb |