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   301 use 5.010;
  17         58  
2 17     17   88 use strict;
  17         31  
  17         347  
3 17     17   75 use warnings;
  17         44  
  17         390  
4 17     17   118 use utf8;
  17         37  
  17         100  
5              
6             package Neo4j::Driver::Type::Path;
7             # ABSTRACT: Directed sequence of relationships between two nodes
8             $Neo4j::Driver::Type::Path::VERSION = '0.38';
9              
10 17     17   1064 use parent 'Neo4j::Types::Path';
  17         45  
  17         96  
11 17     17   13865 use overload '@{}' => \&_array, fallback => 1;
  17         51  
  17         125  
12              
13 17     17   1297 use Carp qw(croak);
  17         40  
  17         5965  
14              
15              
16             sub nodes {
17 14     14 1 9328 my ($self) = @_;
18            
19 14         23 my $i = 0;
20 14         18 return grep { ++$i & 1 } @{$self->{path}};
  46         116  
  14         59  
21             }
22              
23              
24             sub relationships {
25 13     13 1 6811 my ($self) = @_;
26            
27 13         28 my $i = 0;
28 13         21 return grep { $i++ & 1 } @{$self->{path}};
  39         109  
  13         73  
29             }
30              
31              
32             sub elements {
33 10     10 1 4136 my ($self) = @_;
34            
35 10         16 return @{$self->{path}};
  10         53  
36             }
37              
38              
39             sub path {
40             # uncoverable pod (see Deprecations.pod)
41 1     1 0 50 my ($self) = @_;
42            
43 1         15 warnings::warnif deprecated => __PACKAGE__ . "->path() is deprecated; use elements()";
44 1         679 return [ @{$self->{path}} ];
  1         5  
45             }
46              
47              
48             sub _array {
49 1     1   59 my ($self) = @_;
50            
51 1         17 warnings::warnif deprecated => "Direct array access is deprecated; use " . __PACKAGE__ . "->elements()";
52 1         682 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     11 $self->{private} //= {};
61 2         10 return $self->{private};
62             }
63              
64              
65             1;
66              
67             __END__