X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FDeploymentHandler%2FVersionHandler%2FExplicitVersions.pm;h=bac5435e659e19a4f38a11f7c5a86bee19217418;hb=refs%2Fheads%2Fmoo-port;hp=4cf5472c164d95d4d7f09102f3cc349795e39be9;hpb=8fdf6269907d7d5c868c78ac61f041fc34fac351;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/lib/DBIx/Class/DeploymentHandler/VersionHandler/ExplicitVersions.pm b/lib/DBIx/Class/DeploymentHandler/VersionHandler/ExplicitVersions.pm index 4cf5472..bac5435 100644 --- a/lib/DBIx/Class/DeploymentHandler/VersionHandler/ExplicitVersions.pm +++ b/lib/DBIx/Class/DeploymentHandler/VersionHandler/ExplicitVersions.pm @@ -1,38 +1,45 @@ package DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions; -use Moose; +use Moo; +use MooX::Types::MooseLike::Base qw(Str ArrayRef Int HashRef); + +# ABSTRACT: Define your own list of versions to use for migrations + use Carp 'croak'; with 'DBIx::Class::DeploymentHandler::HandlesVersioning'; has schema_version => ( - isa => 'Str', + isa => Str, is => 'ro', required => 1, ); has database_version => ( - isa => 'Str', + isa => Str, is => 'ro', required => 1, ); has to_version => ( is => 'ro', - lazy_build => 1, + isa => Str, + builder => '_build_to_version', + lazy => 1, ); sub _build_to_version { $_[0]->schema_version } has ordered_versions => ( is => 'ro', - isa => 'ArrayRef', + isa => ArrayRef, required => 1, ); has _index_of_versions => ( is => 'ro', - isa => 'HashRef', - lazy_build => 1, + isa => HashRef, + builder => '_build__index_of_versions', + lazy => 1, ); sub _build__index_of_versions { @@ -46,8 +53,9 @@ sub _build__index_of_versions { has _version_idx => ( is => 'rw', - isa => 'Int', - lazy_build => 1, + isa => Int, + builder => '_build__version_idx', + lazy => 1, ); sub _build__version_idx { $_[0]->_index_of_versions->{$_[0]->database_version} } @@ -90,16 +98,20 @@ sub previous_version_set { } else { my $next_idx = $self->_dec_version_idx; return [ - $self->ordered_versions->[$next_idx ], $self->ordered_versions->[$next_idx + 1], + $self->ordered_versions->[$next_idx ], ]; } } -__PACKAGE__->meta->make_immutable; - 1; +# vim: ts=2 sw=2 expandtab + __END__ -vim: ts=2 sw=2 expandtab +=head1 SEE ALSO + +This class is an implementation of +L. Pretty much all the +documentation is there.