Return to RT

<%PERL> my $dirname = File::Basename::dirname($INC{'RT.pm'}); my $localdirname = File::Basename::dirname($INC{'RT.pm'})."/../local/lib/"; $n =~ s/::/\//g; my $show; my $suffix; foreach my $ending (qw(pm pod)) { if ( -r "$dirname/$n.$ending" ) { $show = "$dirname/$n"; $suffix = $ending; } elsif ( -r "$localdirname/$n.$ending" ) { $show = "$localdirname/$n"; $suffix = $ending; } last if $show; } unless ($show) { $show = "$dirname/RT"; $suffix = 'pm'; } if (-r "$show.$suffix") { local $/; my $got_name = 0; my $total_body = ''; foreach my $postfix ('', '_Overlay', '_Vendor', '_Local') { my $fh; next unless -r "$show$postfix.$suffix"; open $fh, "$show$postfix.$suffix" or next; my $body = <$fh>; if ($body =~ s/.*Create takes a hash of values and creates a row in the database:([^=]+)//s) { # okay, reduce it... $body = "=head1 SCHEMA\n\n$1\n=head1 ACCESSORS\n\n\n=cut\n$body"; $body =~ s/=item/=head2/g; } elsif ($body =~ /^=item NewItem$/m and $n =~ /s$/) { my $pkg = $n; $pkg =~ s{/}{::}g; chop $pkg; $body = "=head1 NAME\n\n${pkg}s - Collection of $pkg objects\n\n=cut\n"; $got_name++; } else { $body =~ s/^=head1 NAME[^=]+//m if $got_name; } $body =~ s/^=head1\b(?! ACCESSORS).*\s*(?==(head1|cut))//mg; $body =~ s/^=head1 (?:AUTHOR|SEE ALSO|SYNOPSIS)\s*[^=]+//mg; $body =~ s/^=/\n=/mg; $body =~ s/^=begin testing\n/=begin testing\n\n/mg; close $fh; $total_body .= $body; } my $body; my $converter = Pod::Simple::HTML->new(); $converter->output_string(\$body); $converter->parse_string_document($total_body); $body =~ s{.*?]+>}{}s; $body =~ s{\s*\s*$}{}; $n =~ s{/}{::}g; $m->print("

$n

"); $body =~ s/(?$1<\/a>/g; $body =~ s{(?$1}g; $body =~ s!\n\t!; $body =~ s!

!!; $body =~ s!print($body); } <%ARGS> $Target => '&method=Body' $n => '' <%INIT> require File::Basename; require File::Find; require File::Temp; require File::Spec; require Pod::Simple::HTML;