File Coverage

blib/lib/WriteAt/To/DocBook.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             #===============================================================================
2             #
3             # DESCRIPTION: DocBook
4             #
5             # AUTHOR: Aliaksandr P. Zahatski,
6             #===============================================================================
7             package WriteAt::To::DocBook;
8 1     1   5 use strict;
  1         2  
  1         23  
9 1     1   5 use warnings;
  1         1  
  1         22  
10 1     1   827 use Perl6::Pod::Utl;
  0            
  0            
11             use WriteAt::To;
12             use base ( 'Perl6::Pod::To::DocBook', 'WriteAt::To' );
13             use utf8;
14             our $VERSION = '0.01';
15              
16             sub start_write {
17             my $self = shift;
18             my %tags = @_;
19             my $w = $self->writer;
20             my $dtd = '';
21             for (
22             '/usr/local/share/xml/docbook/4.5/docbookx.dtd',
23             '/usr/share/xml/docbook/schema/dtd/4.5/docbookx.dtd'
24             )
25             {
26             if ( -e $_ ) {
27             $dtd = $_;
28             last;
29             }
30             }
31             die "Can't find docbookx.dtd file" unless $dtd;
32             my $lang = $self->{lang} || 'en';
33             $w->raw(<<"H");
34            
35            
36             "file://${dtd}" []>
37            
38             H
39             $w->raw('');
40             for (qw/ TITLE SUBTITLE AUTHOR CHANGES DESCRIPTION /) {
41             my $n = $tags{$_} || die "Cant find block =$_";
42              
43             #make Document element
44             $self->visit($n);
45             }
46             $w->raw('');
47             }
48              
49             sub block_DESCRIPTION {
50             my ( $self, $n ) = @_;
51             my $w = $self->w;
52             $w->raw('');
53             $self->visit_childs($n);
54             $w->raw('');
55             }
56              
57             sub block_TITLE {
58             my ( $self, $n ) = @_;
59             my $w = $self->w;
60             $w->raw(''); </td> </tr> <tr> <td class="h" > <a name="61">61</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $self->visit_childs($n); </td> </tr> <tr> <td class="h" > <a name="62">62</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> $w->raw('');
63             }
64              
65             sub block_SUBTITLE {
66             my ( $self, $n ) = @_;
67             my $w = $self->w;
68             $w->raw('');
69             $self->visit_childs($n);
70             $w->raw('');
71             }
72              
73             no strict;
74             # alias for CHAPTER
75             sub block_ГЛАВА {
76             $self = shift;
77             return $self->block_CHAPTER(@_)
78             }
79             use strict;
80              
81              
82             sub block_CHAPTER {
83             my ( $self, $node ) = @_;
84             #close any section
85             $self->switch_head_level(0, 'no_start_next');
86             $self->w->raw('') if $self->{IN_CHAPTER};
87             $self->w->raw('') && $self->{IN_CHAPTER}++;
88             $self->w->raw('')->print($node->childs->[0]->childs->[0]) </td> </tr> <tr> <td class="h" > <a name="89">89</a> </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td >   </td> <td class="s"> ->raw('');
90             }
91              
92             sub end_write {
93             my $self = shift;
94             $self->SUPER::end_write();
95             $self->w->raw('') if $self->{IN_CHAPTER};
96             $self->w->raw('');
97             }
98             1;
99              
100              
101