summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2013-05-23 23:25:05 +0100
committerdakkar <dakkar@thenautilus.net>2013-05-23 23:25:05 +0100
commit0370a468d9ff22b47e6eabcb995f68ee997793de (patch)
tree735b7685fc076035fde8f242b5a2b2ef26b51d53 /lib
parentmore sample data (diff)
downloadHomePanel-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.pm23
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;
}