# Copyright © 2010 Julian Blake Kongslie # Licensed under the BSD 3-clause license. use strict; use warnings; package Piny::User::IkiWiki; use Moose; use Moose::Util::TypeConstraints; use MooseX::StrictConstructor; use Piny::User; extends "Piny::User"; # Types subtype 'IkiWikiUsername' => as 'Str' => where { $_ =~ /^ikiwiki-[a-zA-Z][a-zA-Z0-9_.-]*$/ } => message { 'That username is not in the correct format for an ikiwiki user.' } ; # Attributes has 'name' => ( is => 'ro' , isa => 'IkiWikiUsername' , lazy_build => 1 ); # Moose boilerplate __PACKAGE__->meta->make_immutable; 1;