From: Robert Buels Date: Tue, 5 Oct 2010 21:19:12 +0000 (-0700) Subject: add automatic stringification of cgi_root_path and cgi_dir options to CGIBin. X-Git-Tag: 0.031~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-WrapCGI.git;a=commitdiff_plain;h=5ae704bb38b6eaf0068e978c46e130302b8ca0f2 add automatic stringification of cgi_root_path and cgi_dir options to CGIBin. need this to support Path::Class objects being passed as cgi_dir, for example --- diff --git a/lib/Catalyst/Controller/CGIBin.pm b/lib/Catalyst/Controller/CGIBin.pm index 20755aa..91720f7 100644 --- a/lib/Catalyst/Controller/CGIBin.pm +++ b/lib/Catalyst/Controller/CGIBin.pm @@ -1,6 +1,7 @@ package Catalyst::Controller::CGIBin; use Moose; +use Moose::Util::TypeConstraints; use mro 'c3'; extends 'Catalyst::Controller::WrapCGI'; @@ -14,7 +15,7 @@ use IO::File (); use File::Temp 'tempfile'; use File::pushd; use CGI::Compile; - + use namespace::clean -except => 'meta'; =head1 NAME @@ -96,10 +97,17 @@ Can be an array of globs/regexes as well. =cut -has cgi_root_path => (is => 'ro', isa => 'Str', default => 'cgi-bin'); -has cgi_chain_root => (is => 'ro', isa => 'Str'); -has cgi_dir => (is => 'ro', isa => 'Str', default => 'cgi-bin'); -has cgi_file_pattern => (is => 'rw', default => sub { ['*'] }); +{ my $stringified = subtype as 'Str'; + coerce $stringified, + from 'Object', + via { "$_" }; + + has cgi_root_path => (is => 'ro', coerce => 1, isa => $stringified, default => 'cgi-bin' ); + has cgi_chain_root => (is => 'ro', isa => 'Str'); + has cgi_dir => (is => 'ro', coerce => 1, isa => $stringified, default => 'cgi-bin'); + has cgi_file_pattern => (is => 'rw', default => sub { ['*'] }); + +} sub register_actions { my ($self, $app) = @_;