<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>html/zone_days.html</filename>
    </added>
    <added>
      <filename>html/zone_next_pickup.html</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -3,6 +3,7 @@
 &lt;h1&gt;Zone - [% zone %]&lt;/h1&gt;
 &lt;ul&gt;
   &lt;li&gt;&lt;a href=&quot;[% zone_uri %]/pickupdays&quot;&gt;Pickup Days&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;[% zone_uri %]/nextpickup&quot;&gt;Next Pickup&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/body&gt;
 &lt;/html&gt;</diff>
      <filename>html/zone.html</filename>
    </modified>
    <modified>
      <diff>@@ -23,6 +23,7 @@ sub handle_request {
         [ qr{^/zones\.json$} =&gt; \&amp;zones_json ],
         [ qr{^/zones/([^/]+)$} =&gt; \&amp;zone_html ],
         [ qr{^/zones/([^/]+)/pickupdays$} =&gt; \&amp;zone_days ],
+        [ qr{^/zones/([^/]+)/nextpickup$} =&gt; \&amp;zone_next_pickup ],
     );
     for my $match (@func_map) {
         my ($regex, $todo) = @$match;
@@ -80,6 +81,17 @@ sub zone_days {
     return $self-&gt;process_template('zone_days.html', \%param);
 }
 
+sub zone_next_pickup {
+    my $self = shift;
+    my $req  = shift;
+    my $zone = shift;
+    my %param = (
+        zone =&gt; $zone,
+        day =&gt; $self-&gt;model-&gt;next_pickup($zone),
+    );
+    return $self-&gt;process_template('zone_next_pickup.html', \%param);
+}
+
 sub response {
     my $self = shift;
     my $ct   = shift;</diff>
      <filename>lib/App/VanTrash/Controller.pm</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 package App::VanTrash::Model;
 use Moose;
 use YAML qw/LoadFile/;
+use DateTime;
 
 has 'file' =&gt; (is =&gt; 'ro', isa =&gt; 'Str', default =&gt; 'trash-zone-times.yaml');
 has 'zones' =&gt; (is =&gt; 'ro', lazy_build =&gt; 1);
@@ -12,6 +13,21 @@ sub days {
     return [sort {$a cmp $b} @{ $self-&gt;hash-&gt;{$zone} }];
 }
 
+sub next_pickup {
+    my $self = shift;
+    my $zone = shift;
+
+    my $days = $self-&gt;days($zone);
+    my $now = time;
+    for my $d (@$days) {
+        $d =~ m/^(\d+)-(\d+)-(\d+)$/;
+        my $dt = DateTime-&gt;new(year =&gt; $1, month =&gt; $2, day =&gt; $3);
+        next if $now &gt; $dt-&gt;epoch;
+        return $d;
+    }
+    return &quot;N/A&quot;;
+}
+
 sub _build_zones {
     my $self = shift;
     return [sort {$a cmp $b} keys %{ $self-&gt;hash }];</diff>
      <filename>lib/App/VanTrash/Model.pm</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7940ee48cdc52205a14749adedd4114d13492a89</id>
    </parent>
  </parents>
  <author>
    <name>Luke Closs</name>
    <email>gravatar@5thplane.com</email>
  </author>
  <url>http://github.com/lukec/vantrash/commit/d30d2826a1a3f09a2dbc6951e76c4e332d6a4206</url>
  <id>d30d2826a1a3f09a2dbc6951e76c4e332d6a4206</id>
  <committed-date>2009-07-05T03:47:23-07:00</committed-date>
  <authored-date>2009-07-05T03:47:23-07:00</authored-date>
  <message>add call to find the next trash day for a zone</message>
  <tree>091e7af3b2e6807cb49405b41f26decd12b9b690</tree>
  <committer>
    <name>Luke Closs</name>
    <email>gravatar@5thplane.com</email>
  </committer>
</commit>
