draft/ol2dot.rb
author fabien
Sat, 21 Apr 2007 22:31:41 -0400
branchecjdr
changeset 94 fb43a4f8be79
parent 92 bdef1afd1170
permissions -rw-r--r--
[svn] r2439@freebird: fabien | 2007-04-21 22:31:12 -0400 Ajout d'un draft sur les récompenses (déjà presque un article...)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
92
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     1
#!/usr/bin/ruby
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     2
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     3
Header_RE = /^(\*+)\s+(.*)/
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     4
parents = ["#{ARGV[0]}"]
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     5
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     6
print "digraph \"#{parents[0]}\" {\n"
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     7
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     8
while gets
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
     9
  if $_ =~ Header_RE
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    10
    title = $2
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    11
    level = $1.length()
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    12
    next if title =~ /^Emacs Variables/
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    13
    if level > parents.length()
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    14
      [level..parents.length()].each do |i| parents.push("") end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    15
    end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    16
    if level < parents.length()
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    17
      parents = parents[0..level-1]
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    18
    end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    19
    parents.push(title)
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    20
    print "// #{parents.join(",")}\n"
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    21
    if parents.length() > 1
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    22
      print "\"#{parents[-2]}\" -> \"#{parents[-1]}\";\n"
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    23
    end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    24
  end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    25
end
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    26
bdef1afd1170 [svn] r2271@freebird: fabien | 2006-08-30 21:33:34 -0400
fabien
parents:
diff changeset
    27
print "}\n"