class Puma::Rack::URLMap

def remap(map)

def remap(map)
  @mapping = map.map { |location, app|
    if location =~ %r{\Ahttps?://(.*?)(/.*)}
      host, location = $1, $2
    else
      host = nil
    end
    unless location[0] == ?/
      raise ArgumentError, "paths need to start with /"
    end
    location = location.chomp('/')
    match = Regexp.new("^#{Regexp.quote(location).gsub('/', '/+')}(.*)", Regexp::NOENCODING)
    [host, location, match, app]
  }.sort_by do |(host, location, _, _)|
    [host ? -host.size : INFINITY, -location.size]
  end
end