File Coverage

blib/lib/Data/Seek/Search/Result.pm
Criterion Covered Total %
statement 35 35 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod 3 3 100.0
total 45 45 100.0


line stmt bran cond sub pod time code
1             # ABSTRACT: Data::Seek Search Result Class
2             package Data::Seek::Search::Result;
3              
4 3     3   981 use Data::Seek::Data;
  3         6  
  3         68  
5 3     3   332 use Data::Seek::Exception;
  3         4  
  3         54  
6 3     3   364 use Data::Seek::Search;
  3         4  
  3         58  
7              
8 3     3   14 use Data::Object::Class;
  3         3  
  3         9  
9              
10             our $VERSION = '0.06'; # VERSION
11              
12             has 'datasets' => (
13             is => 'ro',
14             default => sub { shift->search->perform },
15             lazy => 1
16             );
17              
18             has 'search' => (
19             is => 'ro',
20             default => sub { Data::Seek::Search->new },
21             lazy => 1
22             );
23              
24             sub data {
25 1     1 1 876 my $self = shift;
26 1         3 my $sets = $self->datasets;
27 1         2 my $data = {};
28              
29 1         1 for my $set (@$sets) {
30 2         3 for my $node (@{$$set{nodes}}) {
  2         3  
31 4         5 $$data{$node} = $$set{dataset}{$node};
32             }
33             }
34              
35 1         22 $data = Data::Seek::Data->new(object => $data);
36 1         16 return $data->decode;
37             }
38              
39             sub nodes {
40 1     1 1 1987 my $self = shift;
41 1         20 my $sets = $self->datasets;
42 1         6 my $keys = [];
43              
44 1         2 for my $set (@$sets) {
45 2         3 push @$keys, sort @{$$set{nodes}};
  2         6  
46             }
47              
48 1         4 return $keys;
49             }
50              
51             sub values {
52 47     47 1 725 my $self = shift;
53 47         768 my $sets = $self->datasets;
54 36         47 my $vals = [];
55              
56 36         42 for my $set (@$sets) {
57 37         29 push @$vals, $$set{dataset}{$_} for sort @{$$set{nodes}};
  37         313  
58             }
59              
60 36         144 return $vals;
61             }
62              
63             1;
64              
65             __END__