Fred Drake | 7313b03 | 1998-07-24 20:34:59 +0000 | [diff] [blame] | 1 | package SynopsisTable; |
| 2 | |
| 3 | sub new{ |
| 4 | return bless {names=>'', info=>{}}; |
| 5 | } |
| 6 | |
| 7 | sub 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 | |
| 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"; |
| 22 | } |
| 23 | |
| 24 | sub get{ |
| 25 | my($self,$name) = @_; |
| 26 | return split /,/, $self->{info}{$name}, 3; |
| 27 | } |
| 28 | |
| 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"; |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | sub tohtml{ |
| 40 | my $self = shift; |
Fred Drake | f930d82 | 1999-07-12 16:28:50 +0000 | [diff] [blame] | 41 | my $data = "<table class=\"synopsistable\">\n"; |
Fred Drake | 7313b03 | 1998-07-24 20:34:59 +0000 | [diff] [blame] | 42 | my $name; |
| 43 | foreach $name (split /,/, $self->{names}) { |
| 44 | my($key,$type,$synopsis) = $self->get($name); |
Fred Drake | d05177f | 1998-07-29 04:45:23 +0000 | [diff] [blame] | 45 | my $link = "<a href=\"module-$key.html\">"; |
Fred Drake | f930d82 | 1999-07-12 16:28:50 +0000 | [diff] [blame] | 46 | $data .= (" <tr>" |
| 47 | . "<td><b><tt class=module>$link$name</a></tt></b></td>\n" |
| 48 | . " <td class=synopsis>$synopsis</td></tr>\n"); |
Fred Drake | 7313b03 | 1998-07-24 20:34:59 +0000 | [diff] [blame] | 49 | } |
Fred Drake | d05177f | 1998-07-29 04:45:23 +0000 | [diff] [blame] | 50 | $data .= "</table>\n"; |
Fred Drake | 7313b03 | 1998-07-24 20:34:59 +0000 | [diff] [blame] | 51 | $data; |
| 52 | } |
| 53 | |
| 54 | |
| 55 | package testSynopsisTable; |
| 56 | |
| 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(); |
| 66 | |
| 67 | print "\n\n"; |
| 68 | |
| 69 | my $st2 = SynopsisTable->new(); |
| 70 | $st2->declare("st2module", "st2module", "built-in"); |
| 71 | $st2->set_synopsis("st2module", "silly little synopsis"); |
| 72 | $st2->show(); |
| 73 | } |
| 74 | |
| 75 | 1; # This must be the last line -- Perl is bogus! |