File Coverage

blib/lib/MsOffice/Word/Template/Engine.pm
Criterion Covered Total %
statement 13 13 100.0
branch n/a
condition n/a
subroutine 5 5 100.0
pod 0 1 0.0
total 18 19 94.7


line stmt bran cond sub pod time code
1             use 5.024;
2 1     1   485 use Moose;
  1         3  
3 1     1   4 use MooseX::AbstractMethod;
  1         2  
  1         4  
4 1     1   3997  
  1         14254  
  1         3  
5             # syntactic sugar for attributes
6              
7             use namespace::clean -except => 'meta';
8              
9 1     1   7340 our $VERSION = '2.0';
  1         3  
  1         4  
10              
11             #======================================================================
12             # ATTRIBUTES
13             #======================================================================
14              
15             has_slot '_constructor_args' => (isa => 'HashRef');
16             has_slot '_compiled_template' => (isa => 'HashRef');
17              
18             #======================================================================
19             # ABSTRACT METHODS -- to be defined in subclasses
20             #======================================================================
21              
22             abstract 'start_tag';
23             abstract 'end_tag';
24             abstract 'compile_template';
25             abstract 'process';
26              
27             #======================================================================
28             # INSTANCE CONSTRUCTION
29             #======================================================================
30              
31              
32             my ($self, $args) = @_;
33             $self->{_constructor_args} = $args; # stored to be available for lazy attr constructors
34             }
35 1     1 0 1472  
36 1         4  
37             1;
38              
39              
40             =encoding ISO-8859-1
41              
42             =head1 NAME
43              
44             MsOffice::Word::Template::Engine -- abstract class for template engines
45              
46             =head1 DESCRIPTION
47              
48             This class does nothing; it just declares a couple of generic attributes
49             and methods to be implemented by engine subclasses.
50             See for example the L<MsOffice::Word::Template::Engine::TT2> subclass.
51              
52              
53              
54