From 0370a468d9ff22b47e6eabcb995f68ee997793de Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 23 May 2013 23:25:05 +0100 Subject: DataBlock slices, better spans and stripes --- lib/WebService/ForecastIo/DataBlock.pm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lib') 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; } -- cgit v1.2.3