package SynopsisTable;sub new{ return bless {names=>'', info=>{}, file=>''};}sub declare{ my($self,$name,$key,$type) = @_; if ($self->{names}) { $self->{names} .= ",$name"; } else { $self->{names} .= "$name"; } $self->{info}{$name} = "$key,$type,";}# The 'file' attribute is used to store the filename of the node in which# the table will be presented; this assumes that each table will be presented# only once, which works for the current use of this object.sub set_file{ my($self, $filename) = @_; $self->{file} = "$filename";}sub get_file{ my $self = shift; return $self->{file};}sub set_synopsis{ my($self,$name,$synopsis) = @_; my($key,$type,$unused) = split ',', $self->{info}{$name}, 3; $self->{info}{$name} = "$key,$type,$synopsis";}sub get{ my($self,$name) = @_; return split /,/, $self->{info}{$name}, 3;}sub show{ my $self = shift; my $name; print "names: ", $self->{names}, "\n\n"; foreach $name (split /,/, $self->{names}) { my($key,$type,$synopsis) = $self->get($name); print "$name($key) is $type: $synopsis\n"; }}sub tohtml{ my $self = shift; my $oddrow = 1; my $data = "<table class='synopsistable' valign='baseline'>\n"; my $name; foreach $name (split /,/, $self->{names}) { my($key,$type,$synopsis) = $self->get($name); my $link = "<a href='module-$key.html'>"; $synopsis =~ s/<tex2html_percent_mark>/%/g; $synopsis =~ s/<tex2html_ampersand_mark>/\&/g; $data .= (' <tr' . ($oddrow ? " class='oddrow'>\n " : '>') . "<td><b><tt class='module'>$link$name</a></tt></b></td>\n" . " <td>\ </td>\n" . " <td class='synopsis'>$synopsis</td></tr>\n"); $oddrow = !$oddrow; } $data .= "</table>\n"; $data;}package testSynopsisTable;sub test{ # this little test is mostly to debug the stuff above, since this is # my first Perl "object". my $st = SynopsisTable->new(); $st->declare("sample", "sample", "standard"); $st->set_synopsis("sample", "This is a little synopsis...."); $st->declare("copy_reg", "copyreg", "standard"); $st->set_synopsis("copy_reg", "pickle support stuff"); $st->show(); print "\n\n"; my $st2 = SynopsisTable->new(); $st2->declare("st2module", "st2module", "built-in"); $st2->set_synopsis("st2module", "silly little synopsis"); $st2->show();}1; # This must be the last line -- Perl is bogus!
package SynopsisTable;
sub new{
return bless {names=>'', info=>{}, file=>''};
}
sub declare{
my($self,$name,$key,$type) = @_;
if ($self->{names}) {
$self->{names} .= ",$name";
}
else {
$self->{names} .= "$name";
}
$self->{info}{$name} = "$key,$type,";
}
# The 'file' attribute is used to store the filename of the node in which
# the table will be presented; this assumes that each table will be presented
# only once, which works for the current use of this object.
sub set_file{
my($self, $filename) = @_;
$self->{file} = "$filename";
}
sub get_file{
my $self = shift;
return $self->{file};
}
sub set_synopsis{
my($self,$name,$synopsis) = @_;
my($key,$type,$unused) = split ',', $self->{info}{$name}, 3;
$self->{info}{$name} = "$key,$type,$synopsis";
}
sub get{
my($self,$name) = @_;
return split /,/, $self->{info}{$name}, 3;
}
sub show{
my $self = shift;
my $name;
print "names: ", $self->{names}, "\n\n";
foreach $name (split /,/, $self->{names}) {
my($key,$type,$synopsis) = $self->get($name);
print "$name($key) is $type: $synopsis\n";
}
}
sub tohtml{
my $self = shift;
my $oddrow = 1;
my $data = "<table class='synopsistable' valign='baseline'>\n";
my $name;
foreach $name (split /,/, $self->{names}) {
my($key,$type,$synopsis) = $self->get($name);
my $link = "<a href='module-$key.html'>";
$synopsis =~ s/<tex2html_percent_mark>/%/g;
$synopsis =~ s/<tex2html_ampersand_mark>/\&/g;
$data .= (' <tr'
. ($oddrow ? " class='oddrow'>\n " : '>')
. "<td><b><tt class='module'>$link$name</a></tt></b></td>\n"
. " <td>\ </td>\n"
. " <td class='synopsis'>$synopsis</td></tr>\n");
$oddrow = !$oddrow;
}
$data .= "</table>\n";
$data;
}
package testSynopsisTable;
sub test{
# this little test is mostly to debug the stuff above, since this is
# my first Perl "object".
my $st = SynopsisTable->new();
$st->declare("sample", "sample", "standard");
$st->set_synopsis("sample", "This is a little synopsis....");
$st->declare("copy_reg", "copyreg", "standard");
$st->set_synopsis("copy_reg", "pickle support stuff");
$st->show();
print "\n\n";
my $st2 = SynopsisTable->new();
$st2->declare("st2module", "st2module", "built-in");
$st2->set_synopsis("st2module", "silly little synopsis");
$st2->show();
}
1; # This must be the last line -- Perl is bogus!