File Coverage

blib/lib/App/Info/HTTPD.pm
Criterion Covered Total %
statement 9 10 90.0
branch n/a
condition n/a
subroutine 3 4 75.0
pod 1 1 100.0
total 13 15 86.7


line stmt bran cond sub pod time code
1             package App::Info::HTTPD;
2              
3             # $Id: HTTPD.pm 3154 2006-09-16 00:01:20Z theory $
4              
5 2     2   28 use strict;
  2         19  
  2         27  
6 2     2   44 use App::Info;
  2         21  
  2         42  
7 2     2   39 use vars qw(@ISA $VERSION);
  2         19  
  2         30  
8             @ISA = qw(App::Info);
9             $VERSION = '0.51';
10              
11             my $croak = sub {
12                 my ($caller, $meth) = @_;
13                 $caller = ref $caller || $caller;
14                 if ($caller eq __PACKAGE__) {
15                     $meth = __PACKAGE__ . '::' . shift;
16                     Carp::croak(__PACKAGE__ . " is an abstract base class. Attempt to " .
17                                 " call non-existent method $meth");
18                 } else {
19                     Carp::croak("Class $caller inherited from the abstract base class " .
20                                 __PACKAGE__ . "but failed to redefine the $meth method. " .
21                                 "Attempt to call non-existent method ${caller}::$meth");
22                 }
23             };
24              
25 0     0 1   sub httpd_root { $croak->(shift, 'httpd_root') }
26              
27             1;
28             __END__
29            
30             =head1 NAME
31            
32             App::Info::HTTPD - Information about web servers on a system
33            
34             =head1 DESCRIPTION
35            
36             This subclass of App::Info is an abstract base class for subclasses that
37             provide information about web servers. Its subclasses are required to
38             implement its interface. See L<App::Info|App::Info> for a complete description
39             and L<App::Info::HTTPD::Apache|App::Info::HTTPD::Apache> for an example
40             implementation.
41            
42             =head1 INTERFACE
43            
44             In addition to the methods outlined by its App::Info parent class,
45             App::Info::HTTPD offers the following abstract methods
46            
47             =head1 OBJECT METHODS
48            
49             =head2 httpd_root
50            
51             my $httpd_root = $app->httpd_root;
52            
53             The root directory of the HTTPD server.
54            
55             =head1 BUGS
56            
57             Please send bug reports to <bug-app-info@rt.cpan.org> or file them at
58             L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=App-Info>.
59            
60             =head1 AUTHOR
61            
62             David Wheeler <david@justatheory.com>
63            
64             =head1 SEE ALSO
65            
66             L<App::Info|App::Info>,
67             L<App::Info::HTTPD::Apache|App::Info::HTTPD::Apache>
68            
69             =head1 COPYRIGHT AND LICENSE
70            
71             Copyright (c) 2002-2006, David Wheeler. All Rights Reserved.
72            
73             This module is free software; you can redistribute it and/or modify it under the
74             same terms as Perl itself.
75            
76             =cut
77            
78            
79