coerce VP::SiteLayouts static_base_uri from URI.
rafl [Mon, 18 Aug 2008 15:00:48 +0000 (15:00 +0000)]
lib/Reaction/UI/ViewPort/SiteLayout.pm

index 2c53f8b..15c637c 100644 (file)
@@ -6,11 +6,22 @@ use aliased 'Reaction::UI::ViewPort';
 use namespace::clean -except => [ qw(meta) ];
 extends ViewPort;
 
+{
+    use Moose::Util::TypeConstraints qw/subtype where coerce from via/;
 
+    my $str_type = subtype 'Str'    => where { 1 };
+    my $uri_type = subtype 'Object' => where { $_->isa('URI') };
 
-has 'title' => (isa => 'Str', is => 'rw', lazy_fail => 1);
+    coerce $str_type
+        => from $uri_type
+        => via { "$_[0]" };
+
+    has 'static_base_uri' => (isa => $str_type, coerce => 1, is => 'rw', lazy_fail => 1);
 
-has 'static_base_uri' => (isa => 'Str', is => 'rw', lazy_fail => 1);
+    no Moose::Util::TypeConstraints;
+}
+
+has 'title' => (isa => 'Str', is => 'rw', lazy_fail => 1);
 
 has 'meta_info' => (
        is => 'rw', isa => 'HashRef',