blob: b391a6af59ba32a870594f900bf3eae07d4bb481 [file] [log] [blame]
Fred Drake7313b031998-07-24 20:34:59 +00001package SynopsisTable;
2
3sub new{
4 return bless {names=>'', info=>{}};
5}
6
7sub declare{
8 my($self,$name,$key,$type) = @_;
9 if ($self->{names}) {
10 $self->{names} .= ",$name";
11 }
12 else {
13 $self->{names} .= "$name";
14 }
15 $self->{info}{$name} = "$key,$type,";
16}
17
18sub set_synopsis{
19 my($self,$name,$synopsis) = @_;
20 my($key,$type,$unused) = split ',', $self->{info}{$name}, 3;
21 $self->{info}{$name} = "$key,$type,$synopsis";
22}
23
24sub get{
25 my($self,$name) = @_;
26 return split /,/, $self->{info}{$name}, 3;
27}
28
29sub 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";
36 }
37}
38
39sub tohtml{
40 my $self = shift;
41 my $data = "<dl>\n";
42 my $name;
43 foreach $name (split /,/, $self->{names}) {
44 my($key,$type,$synopsis) = $self->get($name);
Fred Drake2903d031998-07-24 22:13:37 +000045 $data .= ("<dt><b><tt><a href=\"module-$key.html\">$name</a></tt></b>"
46 . "\n<dd>$synopsis\n");
Fred Drake7313b031998-07-24 20:34:59 +000047 }
48 $data .= "</dl>\n";
49 $data;
50}
51
52
53package testSynopsisTable;
54
55sub test{
56 # this little test is mostly to debug the stuff above, since this is
57 # my first Perl "object".
58 my $st = SynopsisTable->new();
59 $st->declare("sample", "sample", "standard");
60 $st->set_synopsis("sample", "This is a little synopsis....");
61 $st->declare("copy_reg", "copyreg", "standard");
62 $st->set_synopsis("copy_reg", "pickle support stuff");
63 $st->show();
64
65 print "\n\n";
66
67 my $st2 = SynopsisTable->new();
68 $st2->declare("st2module", "st2module", "built-in");
69 $st2->set_synopsis("st2module", "silly little synopsis");
70 $st2->show();
71}
72
731; # This must be the last line -- Perl is bogus!