PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /usr/share/perl5/vendor_perl/Pod/POM/View/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //usr/share/perl5/vendor_perl/Pod/POM/View/Pod.pm |
#============================================================= -*-Perl-*- # # Pod::POM::View::Pod # # DESCRIPTION # Pod view of a Pod Object Model. # # AUTHOR # Andy Wardley <abw@kfs.org> # # COPYRIGHT # Copyright (C) 2000 Andy Wardley. All Rights Reserved. # # This module is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # # REVISION # $Id: Pod.pm 77 2009-08-20 20:44:14Z ford $ # #======================================================================== package Pod::POM::View::Pod; $Pod::POM::View::Pod::VERSION = '2.01'; require 5.006; use strict; use warnings; use Pod::POM::Nodes; use Pod::POM::View; use parent qw( Pod::POM::View ); use vars qw( $DEBUG $ERROR $AUTOLOAD $MARKUP ); $DEBUG = 0 unless defined $DEBUG; # create reverse lookup table mapping method name to original sequence $MARKUP = { map { ( $Pod::POM::Node::Sequence::NAME{ $_ } => $_ ) } keys %Pod::POM::Node::Sequence::NAME, }; sub view { my ($self, $type, $item) = @_; # my ($pkg, $file, $line) = caller; # print STDERR "called view ($type) from $file line $line\n"; if ($type =~ s/^seq_//) { if ($type eq 'text') { return "$item"; } if ($type = $MARKUP->{ $type }) { if ($item =~ /[<>]/) { return "$type<< $item >>"; } else { return "$type<$item>"; } } } elsif (ref $item eq 'HASH') { if (defined $item->{ content }) { return $item->{ content }->present($self); } elsif (defined $item->{ text }) { my $text = $item->{ text }; return ref $text ? $text->present($self) : $text; } else { return ''; } } elsif (! ref $item) { return $item; } else { return ''; } } sub view_pod { my ($self, $pod) = @_; # return "=pod\n\n" . $pod->content->present($self) . "=cut\n\n"; return $pod->content->present($self); } sub view_head1 { my ($self, $head1) = @_; return '=head1 ' . $head1->title->present($self) . "\n\n" . $head1->content->present($self); } sub view_head2 { my ($self, $head2) = @_; return '=head2 ' . $head2->title->present($self) . "\n\n" . $head2->content->present($self); } sub view_head3 { my ($self, $head3) = @_; return '=head3 ' . $head3->title->present($self) . "\n\n" . $head3->content->present($self); } sub view_head4 { my ($self, $head4) = @_; return '=head4 ' . $head4->title->present($self) . "\n\n" . $head4->content->present($self); } sub view_over { my ($self, $over) = @_; return '=over ' . $over->indent() . "\n\n" . $over->content->present($self) . "=back\n\n"; } sub view_item { my ($self, $item) = @_; my $title = $item->title(); $title = $title->present($self) if ref $title; return "=item $title\n\n" . $item->content->present($self); } sub view_for { my ($self, $for) = @_; return '=for ' . $for->format . ' ' . $for->text() . "\n\n" . $for->content->present($self); } sub view_begin { my ($self, $begin) = @_; return '=begin ' . $begin->format() . "\n\n" . $begin->content->present($self) . "=end " . $begin->format() . "\n\n"; } sub view_textblock { my ($self, $text) = @_; return "$text\n\n"; } sub view_verbatim { my ($self, $text) = @_; return "$text\n\n"; } sub view_meta { my ($self, $meta) = @_; return '=meta ' . $meta->name() . "\n\n" . $meta->content->present($self) . "=end\n\n"; } 1; =head1 NAME Pod::POM::View::Pod - create a Pod view of a POM object =head1 DESCRIPTION Pod view of a Pod Object Model. =head1 METHODS =over 4 =item C<view($self, $type, $item)> =item C<view_pod($self, $pod)> =item C<view_head1($self, $head1)> =item C<view_head2($self, $head2)> =item C<view_head3($self, $head3)> =item C<view_head4($self, $head4)> =item C<view_over($self, $over)> =item C<view_item($self, $item)> =item C<view_for($self, $for)> =item C<view_begin($self, $begin)> =item C<view_textblock($self, $textblock)> =item C<view_verbatim($self, $verbatim)> =item C<view_meta($self, $meta)> =back =head1 AUTHOR Andy Wardley E<lt>abw@kfs.orgE<gt> =head1 COPYRIGHT AND LICENSE Copyright (C) 2000 Andy Wardley. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut