X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FAdmin.pm;h=60d8c9e7360b4e35d2d147585a16910a8a337dd0;hb=0dd1b7362ff4b104d68946ae6ca8e7e483621381;hp=b0d76b8ae054e2cbc266814e24aa8dc4a5dfd7a9;hpb=7b71391b3752ec823c7510403c6b59b0be4957ce;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Admin.pm b/lib/DBIx/Class/Admin.pm index b0d76b8..60d8c9e 100644 --- a/lib/DBIx/Class/Admin.pm +++ b/lib/DBIx/Class/Admin.pm @@ -1,20 +1,24 @@ package DBIx::Class::Admin; +use warnings; +use strict; + # check deps BEGIN { - use DBIx::Class; - die('The following modules are required for DBIx::Class::Admin ' . DBIx::Class::Optional::Dependencies->req_missing_for ('admin') ) - unless DBIx::Class::Optional::Dependencies->req_ok_for ('admin'); + require DBIx::Class::Optional::Dependencies; + if (my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('admin') ) { + die "The following extra modules are required for DBIx::Class::Admin: $missing\n"; + } } +use JSON::Any qw(DWIW PP JSON CPANEL XS); use Moose; use MooseX::Types::Moose qw/Int Str Any Bool/; use DBIx::Class::Admin::Types qw/DBICConnectInfo DBICHashRef/; use MooseX::Types::JSON qw(JSON); use MooseX::Types::Path::Class qw(Dir File); -use Try::Tiny; -use JSON::Any qw(DWIW XS JSON); -use namespace::autoclean; +use MooseX::Types::LoadableClass qw(LoadableClass); +use namespace::clean; =head1 NAME @@ -68,7 +72,7 @@ the class of the schema to load has 'schema_class' => ( is => 'ro', - isa => Str, + isa => LoadableClass, ); @@ -87,8 +91,6 @@ has 'schema' => ( sub _build_schema { my ($self) = @_; - require Class::MOP; - Class::MOP::load_class($self->schema_class); $self->connect_info->[3]{ignore_version} = 1; return $self->schema_class->connect(@{$self->connect_info}); } @@ -207,9 +209,6 @@ has config => ( sub _build_config { my ($self) = @_; - try { require Config::Any } - catch { die ("Config::Any is required to parse the config file.\n") }; - my $cfg = Config::Any->load_files ( {files => [$self->config_file], use_ext =>1, flatten_to_hash=>1}); # just grab the config from the config file @@ -340,8 +339,6 @@ sub create { $sqlt_type ||= $self->sql_type(); my $schema = $self->schema(); - # create the dir if does not exist - $self->sql_dir->mkpath() if ( ! -d $self->sql_dir); $schema->create_ddl_dir( $sqlt_type, (defined $schema->schema_version ? $schema->schema_version : ""), $self->sql_dir->stringify, $preversion, $sqlt_args ); } @@ -452,7 +449,7 @@ sub insert { $rs ||= $self->resultset(); $set ||= $self->set(); my $resultset = $self->schema->resultset($rs); - my $obj = $resultset->create( $set ); + my $obj = $resultset->new_result($set)->insert; print ''.ref($resultset).' ID: '.join(',',$obj->id())."\n" if (!$self->quiet); } @@ -583,13 +580,16 @@ sub _find_stanza { return $cfg; } -=head1 AUTHOR +=head1 FURTHER QUESTIONS? -See L. +Check the list of L. -=head1 LICENSE +=head1 COPYRIGHT AND LICENSE -You may distribute this code under the same terms as Perl itself +This module is free software L +by the L. You can +redistribute it and/or modify it under the same terms as the +L. =cut