Added 'description' class attribute to every command class (to help the
[python/dscho.git] / Doc / perl / SynopsisTable.pm
blobe12f2e7744e51f2ac47ca25e6d1c7b1f39672fa9
1 package SynopsisTable;
3 sub new{
4 return bless {names=>'', info=>{}};
7 sub declare{
8 my($self,$name,$key,$type) = @_;
9 if ($self->{names}) {
10 $self->{names} .= ",$name";
12 else {
13 $self->{names} .= "$name";
15 $self->{info}{$name} = "$key,$type,";
18 sub set_synopsis{
19 my($self,$name,$synopsis) = @_;
20 my($key,$type,$unused) = split ',', $self->{info}{$name}, 3;
21 $self->{info}{$name} = "$key,$type,$synopsis";
24 sub get{
25 my($self,$name) = @_;
26 return split /,/, $self->{info}{$name}, 3;
29 sub show{
30 my $self = shift;
31 my $name;
32 print "names: ", $self->{names}, "\n\n";
33 foreach $name (split /,/, $self->{names}) {
34 my($key,$type,$synopsis) = $self->get($name);
35 print "$name($key) is $type: $synopsis\n";
39 sub tohtml{
40 my $self = shift;
41 my $data = "<table class=\"synopsistable\">\n";
42 my $name;
43 foreach $name (split /,/, $self->{names}) {
44 my($key,$type,$synopsis) = $self->get($name);
45 my $link = "<a href=\"module-$key.html\">";
46 $data .= (" <tr>"
47 . "<td><b><tt class=module>$link$name</a></tt></b></td>\n"
48 . " <td class=synopsis>$synopsis</td></tr>\n");
50 $data .= "</table>\n";
51 $data;
55 package testSynopsisTable;
57 sub test{
58 # this little test is mostly to debug the stuff above, since this is
59 # my first Perl "object".
60 my $st = SynopsisTable->new();
61 $st->declare("sample", "sample", "standard");
62 $st->set_synopsis("sample", "This is a little synopsis....");
63 $st->declare("copy_reg", "copyreg", "standard");
64 $st->set_synopsis("copy_reg", "pickle support stuff");
65 $st->show();
67 print "\n\n";
69 my $st2 = SynopsisTable->new();
70 $st2->declare("st2module", "st2module", "built-in");
71 $st2->set_synopsis("st2module", "silly little synopsis");
72 $st2->show();
75 1; # This must be the last line -- Perl is bogus!