def unshorten(url, opts= {})
      options = {
        max_level: opts.fetch(:max_level,   10),
        timeout:   opts.fetch(:timeout,      2),
        use_cache: opts.fetch(:use_cache, true)
      }
      url = (url =~ /^https?:/i) ? url : "http://#{url}"
      __unshorten__(url, options)
    end
def unshorten(url, opts= {})
      options = {
        max_level: opts.fetch(:max_level,   10),
        timeout:   opts.fetch(:timeout,      2),
        use_cache: opts.fetch(:use_cache, true)
      }
      url = (url =~ /^https?:/i) ? url : "http://#{url}"
      __unshorten__(url, options)
    end
Unshorten a shortened URL.

 @param url [String] A shortened URL

 @param [Hash] opts

 @option opts [Integer] :max_level
   max redirect times

 @option opts [Integer] :timeout
   timeout in seconds, for every request

 @option opts [Boolean] :use_cache
   use cached result if available

 @return Original url, a url that does not redirects