From: Dagfinn Ilmari Mannsåker Date: Thu, 28 Nov 2013 23:33:44 +0000 (+0000) Subject: Stop using deprecated Class::MOP::load_module X-Git-Tag: v0.62~3 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Model-DBIC-Schema.git;a=commitdiff_plain;h=45b101914d8e7130178e9f9748deda25992b6317 Stop using deprecated Class::MOP::load_module Instead, use Module::Runtime and MooseX::Types::LoadableClass, as appropriate. --- diff --git a/Changes b/Changes index c7a74d5..53949fe 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,7 @@ Revision history for Perl extension Catalyst::Model::DBIC::Schema - Don't ship MYMETA.* files (RT#91808) + - Stop using deprecated Class::MOP::load_module 0.61 2013-06-19 12:48:34 - Fix test failure caused by hash randomisation in perl 5.17 (RT#82917) diff --git a/Makefile.PL b/Makefile.PL index ee07a89..7212c4c 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -10,6 +10,8 @@ requires 'CatalystX::Component::Traits' => '0.14'; requires 'Moose' => '1.12'; requires 'MooseX::Types'; +requires 'MooseX::Types::LoadableClass' => 0.009; +requires 'Module::Runtime' => '0.012'; requires 'namespace::autoclean' => 0.09; requires 'Carp::Clan'; requires 'List::MoreUtils'; diff --git a/lib/Catalyst/Helper/Model/DBIC/Schema.pm b/lib/Catalyst/Helper/Model/DBIC/Schema.pm index 99fba19..396af50 100644 --- a/lib/Catalyst/Helper/Model/DBIC/Schema.pm +++ b/lib/Catalyst/Helper/Model/DBIC/Schema.pm @@ -18,6 +18,7 @@ use Scalar::Util 'looks_like_number'; use File::Find 'finddepth'; use Try::Tiny; use Cwd 'getcwd'; +use Module::Runtime 'use_module'; =head1 NAME @@ -312,7 +313,7 @@ sub _read_loader_args { } my $have_loader = try { - Class::MOP::load_class('DBIx::Class::Schema::Loader::Base'); + use_module('DBIx::Class::Schema::Loader::Base'); 1; }; @@ -477,7 +478,7 @@ sub _build_result_namespace { File::Spec->catfile($self->helper->{base}, 'lib', @schema_parts) . '.pm'; if (not -f $schema_pm) { - eval { Class::MOP::load_class('DBIx::Class::Schema::Loader') }; + eval { use_module('DBIx::Class::Schema::Loader') }; return 'Result' if $@; @@ -623,7 +624,7 @@ sub _gen_static_schema { my $schema_dir = File::Spec->catfile($helper->{base}, 'lib'); try { - Class::MOP::load_class('DBIx::Class::Schema::Loader') + use_module('DBIx::Class::Schema::Loader') } catch { die "Cannot load DBIx::Class::Schema::Loader: $_"; @@ -642,7 +643,7 @@ sub _gen_static_schema { require lib; lib->import($schema_dir); - Class::MOP::load_class($self->schema_class); + use_module($self->schema_class); my @sources = $self->schema_class->sources; diff --git a/lib/Catalyst/Model/DBIC/Schema.pm b/lib/Catalyst/Model/DBIC/Schema.pm index 62ab882..161021c 100644 --- a/lib/Catalyst/Model/DBIC/Schema.pm +++ b/lib/Catalyst/Model/DBIC/Schema.pm @@ -12,11 +12,13 @@ use namespace::autoclean; use Carp::Clan '^Catalyst::Model::DBIC::Schema'; use Data::Dumper; use DBIx::Class (); +use Module::Runtime qw/use_module/; use Catalyst::Model::DBIC::Schema::Types - qw/ConnectInfo LoadedClass SchemaClass Schema/; + qw/ConnectInfo SchemaClass Schema/; -use MooseX::Types::Moose qw/ArrayRef Str ClassName Undef/; +use MooseX::Types::Moose qw/Str/; +use MooseX::Types::LoadableClass qw/LoadableClass/; =head1 NAME @@ -417,7 +419,6 @@ See L and L. has schema_class => ( is => 'ro', isa => SchemaClass, - coerce => 1, required => 1 ); @@ -434,9 +435,8 @@ has model_name => ( has _default_cursor_class => ( is => 'ro', - isa => LoadedClass, + isa => LoadableClass, default => 'DBIx::Class::Storage::DBI::Cursor', - coerce => 1 ); has schema => (is => 'rw', isa => Schema); @@ -467,7 +467,7 @@ sub BUILD { } if (exists $self->connect_info->{cursor_class}) { - eval { Class::MOP::load_class($self->connect_info->{cursor_class}) } + eval { use_module($self->connect_info->{cursor_class}) } or croak "invalid connect_info: Cannot load your cursor_class" . " ".$self->connect_info->{cursor_class}.": $@"; } diff --git a/lib/Catalyst/Model/DBIC/Schema/Types.pm b/lib/Catalyst/Model/DBIC/Schema/Types.pm index 44aee6b..0356482 100644 --- a/lib/Catalyst/Model/DBIC/Schema/Types.pm +++ b/lib/Catalyst/Model/DBIC/Schema/Types.pm @@ -2,30 +2,22 @@ package # hide from PAUSE Catalyst::Model::DBIC::Schema::Types; use MooseX::Types -declare => [qw/ - ConnectInfo ConnectInfos Replicants SchemaClass LoadedClass CreateOption + ConnectInfo ConnectInfos Replicants SchemaClass CreateOption Schema /]; use Carp::Clan '^Catalyst::Model::DBIC::Schema'; use MooseX::Types::Moose qw/ArrayRef HashRef CodeRef Str ClassName/; +use MooseX::Types::LoadableClass qw/LoadableClass/; use Scalar::Util 'reftype'; use List::MoreUtils 'all'; use namespace::clean -except => 'meta'; -subtype LoadedClass, - as ClassName; - -coerce LoadedClass, - from Str, # N.B. deliberate paranoia against $_ clobbering below - via { my $classname = $_; Class::MOP::load_class($classname); $classname }; - subtype SchemaClass, - as ClassName, + as LoadableClass, where { $_->isa('DBIx::Class::Schema') }; -SchemaClass->coercion(LoadedClass->coercion); - class_type Schema, { class => 'DBIx::Class::Schema' }; subtype ConnectInfo, diff --git a/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm b/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm index e70de3f..f1d5162 100644 --- a/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm +++ b/lib/Catalyst/TraitFor/Model/DBIC/Schema/Caching.pm @@ -4,6 +4,7 @@ use namespace::autoclean; use Moose::Role; use Carp::Clan '^Catalyst::Model::DBIC::Schema'; use MooseX::Types::Moose 'Int'; +use Module::Runtime 'use_module'; =head1 NAME @@ -63,7 +64,7 @@ after setup => sub { my $cursor_class = $self->connect_info->{cursor_class} || 'DBIx::Class::Cursor::Cached'; - unless (eval { Class::MOP::load_class($cursor_class) }) { + unless (eval { use_module($cursor_class) }) { carp "Caching disabled, cannot load cursor class" . " $cursor_class: $@"; return; diff --git a/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm b/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm index 73317d8..a978d1d 100644 --- a/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm +++ b/lib/Catalyst/TraitFor/Model/DBIC/Schema/Replicated.pm @@ -4,9 +4,11 @@ use namespace::autoclean; use Moose::Role; use Carp::Clan '^Catalyst::Model::DBIC::Schema'; -use Catalyst::Model::DBIC::Schema::Types qw/ConnectInfos LoadedClass/; +use Catalyst::Model::DBIC::Schema::Types qw/ConnectInfos LoadableClass/; use MooseX::Types::Moose qw/Str HashRef/; +use Module::Runtime qw/use_module/; + =head1 NAME Catalyst::TraitFor::Model::DBIC::Schema::Replicated - Replicated storage support for @@ -74,7 +76,7 @@ has replicants => ( is => 'ro', isa => ConnectInfos, coerce => 1, required => 1 ); -has pool_type => (is => 'ro', isa => LoadedClass); +has pool_type => (is => 'ro', isa => LoadableClass); has pool_args => (is => 'ro', isa => HashRef); has balancer_type => (is => 'ro', isa => Str); has balancer_args => (is => 'ro', isa => HashRef); @@ -88,7 +90,7 @@ after setup => sub { "DBIx::Class::Storage$storage_type" : $storage_type; - Class::MOP::load_class($class); + use_module($class); croak "This storage_type cannot be used with replication" unless $class->isa('DBIx::Class::Storage::DBI::Replicated');