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