module Launchy

def string_to_uri(str)

def string_to_uri(str)
  str = str.to_s
  uri = Addressable::URI.parse(str)
  Launchy.log "URI parsing pass 1 : #{str} -> #{uri.to_hash}"
  unless uri.scheme
    uri = Addressable::URI.heuristic_parse(str)
    Launchy.log "URI parsing pass 2 : #{str} -> #{uri.to_hash}"
  end
  raise Launchy::ArgumentError, "Invalid URI given: #{str.inspect}" unless uri
  uri
end