class WEBrick::HTTPServer::MountTable

:nodoc:

def [](dir)

def [](dir)
  dir = normalize(dir)
  @tab[dir]
end

def []=(dir, val)

def []=(dir, val)
  dir = normalize(dir)
  @tab[dir] = val
  compile
  val
end

def compile

def compile
  k = @tab.keys
  k.sort!
  k.reverse!
  k.collect!{|path| Regexp.escape(path) }
  @scanner = Regexp.new("\\A(" + k.join("|") +")(?=/|\\z)")
end

def delete(dir)

def delete(dir)
  dir = normalize(dir)
  res = @tab.delete(dir)
  compile
  res
end

def initialize

:nodoc:
def initialize
  @tab = Hash.new
  compile
end

def normalize(dir)

def normalize(dir)
  ret = dir ? dir.dup : +""
  ret.sub!(%r|/+\z|, "")
  ret
end

def scan(path)

def scan(path)
  @scanner =~ path
  [ $&, $' ]
end