File Coverage

lib/OODoc/Index.pm
Criterion Covered Total %
statement 15 39 38.4
branch 0 4 0.0
condition 0 5 0.0
subroutine 5 15 33.3
pod 6 7 85.7
total 26 70 37.1


line stmt bran cond sub pod time code
1             # This code is part of Perl distribution OODoc version 3.05.
2             # The POD got stripped from this file by OODoc version 3.05.
3             # For contributors see file ChangeLog.
4              
5             # This software is copyright (c) 2003-2025 by Mark Overmeer.
6              
7             # This is free software; you can redistribute it and/or modify it under
8             # the same terms as the Perl 5 programming language system itself.
9             # SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later
10              
11              
12             package OODoc::Index;{
13             our $VERSION = '3.05';
14             }
15              
16 1     1   6 use parent 'OODoc::Object';
  1         2  
  1         7  
17              
18 1     1   89 use strict;
  1         1  
  1         15  
19 1     1   3 use warnings;
  1         1  
  1         36  
20              
21 1     1   3 use Log::Report 'oodoc';
  1         2  
  1         4  
22              
23 1     1   205 use List::Util qw/first/;
  1         2  
  1         475  
24              
25             #--------------------
26              
27             sub init($)
28 0     0 0   { my ($self, $args) = @_;
29 0           $self->SUPER::init($args);
30 0           $self->{OI_pkgs} = {};
31 0           $self->{OI_mans} = {};
32 0           $self;
33             }
34              
35             #--------------------
36              
37 0     0     sub _packages() { $_[0]->{OI_pkgs} }
38 0     0     sub _manuals() { $_[0]->{OI_mans} }
39              
40             #--------------------
41              
42             sub addManual($)
43 0     0 1   { my ($self, $manual) = @_;
44              
45 0 0 0       ref $manual && $manual->isa('OODoc::Manual')
46             or panic "manual definition requires manual object";
47              
48 0           push @{$self->_packages->{$manual->package}}, $manual;
  0            
49 0           $self->_manuals->{$manual->name} = $manual;
50 0           $self;
51             }
52              
53              
54             sub mainManual($)
55 0     0 1   { my ($self, $name) = @_;
56 0     0     first { $_ eq $_->package } $self->manualsForPackage($name);
  0            
57             }
58              
59              
60             sub manualsForPackage($)
61 0     0 1   { my ($self, $name) = @_;
62 0 0 0       @{$self->_packages->{$name || 'doc'} || []};
  0            
63             }
64              
65              
66 0     0 1   sub manuals() { values %{$_[0]->_manuals} }
  0            
67              
68              
69 0     0 1   sub findManual($) { $_[0]->_manuals->{ $_[1] } }
70              
71              
72 0     0 1   sub packageNames() { keys %{$_[0]->_packages} }
  0            
73              
74              
75             1;