diff options
author | dakkar <dakkar@thenautilus.net> | 2013-05-23 23:25:05 +0100 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2013-05-23 23:25:05 +0100 |
commit | 0370a468d9ff22b47e6eabcb995f68ee997793de (patch) | |
tree | 735b7685fc076035fde8f242b5a2b2ef26b51d53 /lib | |
parent | more sample data (diff) | |
download | HomePanel-0370a468d9ff22b47e6eabcb995f68ee997793de.tar.gz HomePanel-0370a468d9ff22b47e6eabcb995f68ee997793de.tar.bz2 HomePanel-0370a468d9ff22b47e6eabcb995f68ee997793de.zip |
DataBlock slices, better spans and stripes
Diffstat (limited to 'lib')
-rw-r--r-- | lib/WebService/ForecastIo/DataBlock.pm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/WebService/ForecastIo/DataBlock.pm b/lib/WebService/ForecastIo/DataBlock.pm index 42b3d0e..c01e1cf 100644 --- a/lib/WebService/ForecastIo/DataBlock.pm +++ b/lib/WebService/ForecastIo/DataBlock.pm @@ -42,6 +42,26 @@ sub spans_by_number { ); } +sub slice { + my ($self,%opts) = @_; + + my $from = $opts{from} // 0-'Inf'; + my $to = $opts{to} // 0+'Inf'; + + warn "slicing $from $to\n"; + + return ref($self)->new({ + summary => $self->summary, + icon => $self->icon, + data => [ + grep { + warn "looking at ".$_->time."\n"; + $_->time >= $from && $_->time <= $to } + $self->data_points + ], + }); +} + sub _spans { my ($self,$field,$comp) = @_; @@ -68,6 +88,9 @@ sub _spans { } } } + if (@$out) { + $out->[-1]->_set_stop_time($self->data->[-1]->time); + } return $out; } |