my ($key, $val) = split /=/, $_, 2;
- $connect_info{$key} = eval $val;
+ if ($key =~ /^(?:quote_char|name_sep)\z/) {
+ $connect_info{$key} = $val;
+ } else {
+ $connect_info{$key} = eval $val;
+ }
+
die "syntax error for connect_info key '$key' with value '$val': $@"
if $@;
}
my ($self, $args) = @_;
# remove blanks, ie. someoned doing foo \ bar
- my @res = grep !/^\s*\z/, @$args;
+# my @res = grep !/^\s*\z/, @$args;
+# bad idea.
+ my @res = @$args;
# remove leading whitespace, ie. foo \ bar
s/^\s*// for @res;
use Moose::Autobox;
use Catalyst::Model::DBIC::Schema::Types qw/ConnectInfo SchemaClass/;
+use MooseX::Types::Moose qw/ArrayRef Str ClassName/;
use namespace::clean -except => 'meta';
required => 1
);
-has 'storage_type' => (is => 'rw', isa => 'Str');
+has 'storage_type' => (is => 'rw', isa => Str);
has 'connect_info' => (is => 'ro', isa => ConnectInfo, coerce => 1);
# ref $self changes to anon after roles are applied, and _original_class_name is
# broken in MX::O::P 0.0009
-has '_class_name' => (is => 'ro', isa => 'ClassName', default => sub {
+has '_class_name' => (is => 'ro', isa => ClassName, default => sub {
ref shift
});
-has 'model_name' => (is => 'ro', isa => 'Str', default => sub {
+has 'model_name' => (is => 'ro', isa => Str, default => sub {
my $self = shift;
my $class = ref $self;
$model_name
});
-has 'roles' => (is => 'ro', isa => 'ArrayRef|Str');
+has 'roles' => (is => 'ro', isa => ArrayRef|Str);
sub BUILD {
my $self = shift;
package Catalyst::Model::DBIC::Schema::Types;
use MooseX::Types
- -declare => [qw/ConnectInfo ConnectInfos Replicants SchemaClass/];
+ -declare => [qw/ConnectInfo ConnectInfos Replicants SchemaClass CursorClass/];
use Carp::Clan '^Catalyst::Model::DBIC::Schema';
use MooseX::Types::Moose qw/ArrayRef HashRef Str ClassName/;
from Str,
via { Class::MOP::load_class($_); $_ };
+subtype CursorClass,
+ as ClassName;
+
+coerce CursorClass,
+ from Str,
+ via { Class::MOP::load_class($_); $_ };
+
subtype ConnectInfo,
as HashRef,
where { exists $_->{dsn} },