File Coverage

blib/lib/Astro/VEX/Container.pm
Criterion Covered Total %
statement 25 26 96.1
branch 4 4 100.0
condition 1 3 33.3
subroutine 6 6 100.0
pod 0 3 0.0
total 36 42 85.7


line stmt bran cond sub pod time code
1             package Astro::VEX::Container;
2              
3             =head1 NAME
4              
5             Astro::VEX::Container - VEX (VLBI Experiment Definition) container base class
6              
7             =cut
8              
9 2     2   723 use strict;
  2         4  
  2         53  
10 2     2   10 use warnings;
  2         20  
  2         81  
11              
12             our $VERSION = '0.001';
13              
14 2     2   10 use parent qw/Astro::VEX::NamedItem/;
  2         3  
  2         13  
15              
16             sub new {
17 2   33 2 0 2453 my $proto = shift; my $class = ref($proto) || $proto;
  2         10  
18 2         4 my $name = shift;
19 2         3 my $content = shift;
20              
21 2         36 return bless {
22             NAME => $name,
23             CONTENT => $content,
24             }, $class;
25             }
26              
27             sub items {
28 1     1 0 2 my $self = shift;
29              
30 1         2 return grep {not $_->isa('Astro::VEX::Comment')} @{$self->{'CONTENT'}};
  1         9  
  1         3  
31             }
32              
33             sub param {
34 6     6 0 300 my $self = shift;
35 6         10 my $name = shift;
36              
37 6         10 for my $item (@{$self->{'CONTENT'}}) {
  6         13  
38 22 100       64 if ($item->isa('Astro::VEX::Param')) {
39 16 100       28 if ($item->name eq $name) {
40 6         22 return $item;
41             }
42             }
43             }
44              
45 0           die 'Parameter not found: ' . $name;
46             }
47              
48             1;
49              
50             __END__