diff options
Diffstat (limited to 'usr/src/libpiny/lib/Piny/User/IkiWiki.pm')
-rw-r--r-- | usr/src/libpiny/lib/Piny/User/IkiWiki.pm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/usr/src/libpiny/lib/Piny/User/IkiWiki.pm b/usr/src/libpiny/lib/Piny/User/IkiWiki.pm new file mode 100644 index 0000000..b522ad8 --- /dev/null +++ b/usr/src/libpiny/lib/Piny/User/IkiWiki.pm @@ -0,0 +1,33 @@ +# Copyright © 2010 Julian Blake Kongslie <jblake@omgwallhack.org> +# Licensed under the BSD 3-clause license. + +package Piny::User::IkiWiki; + +use Moose; +use Moose::Util::TypeConstraints; + +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; |