File Coverage

blib/lib/XML/Toolkit/Config/Container.pm
Criterion Covered Total %
statement 30 31 96.7
branch n/a
condition n/a
subroutine 7 8 87.5
pod n/a
total 37 39 94.8


line stmt bran cond sub pod time code
1             package XML::Toolkit::Config::Container;
2             {
3             $XML::Toolkit::Config::Container::VERSION = '0.15';
4             }
5 2     2   55151 use Moose;
  2         1077777  
  2         19  
6 2     2   16576 use namespace::autoclean;
  2         3256  
  2         13  
7 2     2   2553 use Bread::Board;
  2         3808223  
  2         15  
8              
9             extends qw(Bread::Board::Container);
10              
11             with qw(
12             XML::Toolkit::Config
13             XML::Toolkit::Cmd::ClassTemplate
14             XML::Toolkit::Builder::NamespaceRegistry
15             );
16              
17             has '+name' => ( default => 'XML::Toolkit::Application' );
18              
19             sub BUILD {
20 9     9   151908 my $self = shift;
21              
22             container $self => as {
23              
24 9     9   611 service 'template' => $self->template;
25              
26 9         10239 service 'xmlns' => $self->xmlns;
27              
28             container Builder => as {
29 9         13580 service filter => (
30             lifecycle => 'Singleton',
31             class => 'XML::Toolkit::Builder::Filter',
32             dependencies => {
33             template => depends_on('/template'),
34             xmlns => depends_on('/xmlns'),
35             }
36             );
37              
38 9         132040 service parser => (
39             class => 'XML::SAX::ParserFactory',
40             constructor_name => 'parser',
41             dependencies => { Handler => depends_on('filter') },
42             );
43              
44 9         8661 service instance => (
45             class => 'XML::Toolkit::Builder',
46             dependencies => {
47             filter => depends_on('filter'),
48             parser => depends_on('parser'),
49              
50             },
51             );
52 9         7055 };
53             container Loader => as {
54              
55 9         7890 service filter => (
56             lifecycle => 'Singleton',
57             class => 'XML::Toolkit::Loader::Filter',
58             dependencies => {
59             template => depends_on('/template'),
60             xmlns => depends_on('/xmlns'),
61             }
62             );
63              
64 9         64113 service parser => (
65             class => 'XML::SAX::ParserFactory',
66             constructor_name => 'parser',
67             dependencies => { Handler => depends_on('filter') },
68             );
69              
70 9         7810 service instance => (
71             class => 'XML::Toolkit::Loader',
72             dependencies => {
73             filter => depends_on('filter'),
74             parser => depends_on('parser'),
75             generator => depends_on('/Generator/instance'),
76             }
77             );
78 9         9230 };
79              
80             container Generator => as {
81             service output => (
82 6         32317 block => sub { [] },
83 9         7337 lifecycle => 'Singleton',
84             );
85 9         110190 service quote_charecter => q['];
86 9         3910 service handler => (
87             class => 'XML::SAX::Writer',
88             dependencies => {
89             Output => depends_on('output'),
90             QuoteCharacter => depends_on('quote_charecter'),
91             }
92             );
93 9         10010 service engine => (
94             class => 'XML::Toolkit::Generator::Default',
95             dependencies => {
96             Handler => depends_on('handler'),
97             xmlns => depends_on('/xmlns'),
98             }
99             );
100 9         9903 service instance => (
101             class => 'XML::Toolkit::Generator',
102             dependencies => {
103             output => depends_on('output'),
104             engine => depends_on('engine'),
105             }
106             );
107             }
108              
109 9         117 };
  9         11834  
110             }
111              
112 3     3   2919 sub builder { shift->fetch('Builder/instance')->get }
113 6     6   11723 sub loader { shift->fetch('Loader/instance')->get }
114 0     0     sub generator { shift->fetch('Generator/instance')->get }
115              
116             1;
117             __END__