summaryrefslogtreecommitdiff
path: root/usr/src/libpiny/lib/Piny/User/IkiWiki.pm
diff options
context:
space:
mode:
authorJulian Blake Kongslie <jblake@omgwallhack.org>2010-07-07 15:44:46 -0700
committerJulian Blake Kongslie <jblake@omgwallhack.org>2010-07-07 15:44:46 -0700
commitd809044c2f00d7f8358dc8013c4e6639760aba67 (patch)
treed15343ee934bc6b23a395046d35f7fb4e6131459 /usr/src/libpiny/lib/Piny/User/IkiWiki.pm
parentf5674a8b57fe48d470fae283ac3d3c259f8aa9c7 (diff)
downloadpiny-code-d809044c2f00d7f8358dc8013c4e6639760aba67.tar.gz
piny-code-d809044c2f00d7f8358dc8013c4e6639760aba67.zip
Revising newrepo to use libpiny.
Diffstat (limited to 'usr/src/libpiny/lib/Piny/User/IkiWiki.pm')
-rw-r--r--usr/src/libpiny/lib/Piny/User/IkiWiki.pm33
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;