The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
% my $class = shift;
package <%= $class %>::Routes;

=head1 NAME

<%= $class %>::Routes -- set up the routes for <%= $class %>.

=head1 DESCRIPTION

This package creates all the routes, and thus defines
the API for <%= $class %>.

=cut

use strict;
use warnings;

use <%= $class %>::Objects;
use Clustericious::RouteBuilder;
use Clustericious::RouteBuilder::CRUD
        "create" => { -as => "do_create" },
        "read"   => { -as => "do_read"   },
        "delete" => { -as => "do_delete" },
        "update" => { -as => "do_update" },
        "list"   => { -as => "do_list"   },
        defaults => { finder => "Rose::Planter" };
use Clustericious::RouteBuilder::Search
        "search" => { -as => "do_search" },
        defaults => { finder => "Rose::Planter" };

get   '/' => sub {shift->render_text("welcome to <%= $class %>")};

post  '/:items/search' => \&do_search;
get   '/:items/search' => \&do_search;
post  '/:table'        => [ table => Rose::Planter->regex_for_tables ] => \&do_create;
get   '/:table/*key'   => [ table => Rose::Planter->regex_for_tables ] => \&do_read;
post  '/:table/*key'   => [ table => Rose::Planter->regex_for_tables ] => \&do_update;
del   '/:table/*key'   => [ table => Rose::Planter->regex_for_tables ] => \&do_delete;
get   '/:table'        => [ table => Rose::Planter->regex_for_tables ] => \&do_list;

1;