File Coverage

lib/Neo4j/Driver/Type/Path.pm
Criterion Covered Total %
statement 43 43 100.0
branch n/a
condition 2 2 100.0
subroutine 13 13 100.0
pod 3 4 100.0
total 61 62 100.0


line stmt bran cond sub pod time code
1 17     17   300 use 5.010;
  17         55  
2 17     17   91 use strict;
  17         27  
  17         367  
3 17     17   76 use warnings;
  17         32  
  17         454  
4 17     17   85 use utf8;
  17         53  
  17         85  
5              
6             package Neo4j::Driver::Type::Path;
7             # ABSTRACT: Directed sequence of relationships between two nodes
8             $Neo4j::Driver::Type::Path::VERSION = '0.39';
9              
10 17     17   1067 use parent 'Neo4j::Types::Path';
  17         40  
  17         106  
11 17     17   13786 use overload '@{}' => \&_array, fallback => 1;
  17         40  
  17         175  
12              
13 17     17   1356 use Carp qw(croak);
  17         33  
  17         5976  
14              
15              
16             sub nodes {
17 14     14 1 8845 my ($self) = @_;
18            
19 14         27 my $i = 0;
20 14         22 return grep { ++$i & 1 } @{$self->{path}};
  46         118  
  14         42  
21             }
22              
23              
24             sub relationships {
25 13     13 1 7042 my ($self) = @_;
26            
27 13         42 my $i = 0;
28 13         22 return grep { $i++ & 1 } @{$self->{path}};
  39         110  
  13         66  
29             }
30              
31              
32             sub elements {
33 10     10 1 4550 my ($self) = @_;
34            
35 10         18 return @{$self->{path}};
  10         57  
36             }
37              
38              
39             sub path {
40             # uncoverable pod (see Deprecations.pod)
41 1     1 0 52 my ($self) = @_;
42            
43 1         16 warnings::warnif deprecated => __PACKAGE__ . "->path() is deprecated; use elements()";
44 1         680 return [ @{$self->{path}} ];
  1         4  
45             }
46              
47              
48             sub _array {
49 1     1   57 my ($self) = @_;
50            
51 1         17 warnings::warnif deprecated => "Direct array access is deprecated; use " . __PACKAGE__ . "->elements()";
52 1         685 return $self->{path};
53             }
54              
55              
56             # for experimental Cypher type system customisation only
57             sub _private {
58 2     2   5 my ($self) = @_;
59            
60 2   100     12 $self->{private} //= {};
61 2         9 return $self->{private};
62             }
63              
64              
65             1;
66              
67             __END__