Dk RubyKrimsKrams

Graphen mit aufsteigender Anzahl von Graden pro Knoten:

@a, @v = [], 0
def nexte
  kanten = (@v...@a.size).to_a
  kanten.each{|i| @a[i].push @a.size}
  @a[@a.size] = kanten
  @v+=1  if @a[@v].size > @v
  @a[0...@v] = [true]*@v  # Etwas Speicherschonender
  [@a.size, @v, @a.size - @v]
end

Macht aus einer absoluten URI eine relative URI:

def url_relative u1, u2
  r = u2.dup
  return r  unless u1.host == u2.host && u1.scheme == u2.scheme && u1.userinfo == u2.userinfo && u1.port == u2.port
  r.scheme = r.user = r.password = r.host = r.port = nil
  unless u1.path == u2.path
    return r  unless File.dirname( u1.path) == File.dirname( u2.path)
    r.path = File.basename r.path
    return r
  end
  r.path = ''
  return r  unless u1.query == u2.query && u2.fragment
  r.query = nil
  r
end