Catalyst Introducing Catalyst #11

Writing the Wiki Class

package KitiWiki::Backend::Wiki;
use Moose;

has 'storage_root' => (
    is => 'ro', isa => Dir, ...
);

sub page {
    my ($self, $page) = @_;
    my $pagedir = $self->storage_root->subdir($page);
    $self->_validate_page_name($page) or 
      confess "attempt to load invalid page '$page'";
    return KitiWiki::Backend::Wiki::Page->new( storage => $pagedir );
}
""