Port to Moo
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / VersionStorage / Standard.pm
index 88376d0..b1af275 100644 (file)
@@ -1,18 +1,21 @@
 package DBIx::Class::DeploymentHandler::VersionStorage::Standard;
-use Moose;
-use Method::Signatures::Simple;
+use Moo;
+use DBIx::Class::DeploymentHandler::LogImporter ':log';
+use DBIx::Class::DeploymentHandler::Types 'ResultSet';
+
+# ABSTRACT: Version storage that does the normal stuff
+
+use DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult;
 
 has schema => (
-  isa      => 'DBIx::Class::Schema',
   is       => 'ro',
   required => 1,
 );
 
 has version_rs => (
-  isa        => 'DBIx::Class::ResultSet',
+  isa        => ResultSet,
   is         => 'ro',
-  lazy_build => 1, # builder comes from another role...
-                   # which is... probably not how we want it
+  builder    => '_build_version_rs',
   handles    => [qw( database_version version_storage_is_installed )],
 );
 
@@ -26,10 +29,26 @@ sub _build_version_rs {
   $_[0]->schema->resultset('__VERSION')
 }
 
-sub add_database_version { $_[0]->version_rs->create($_[1]) }
+sub add_database_version {
+  my $version = $_[1]->{version};
+  log_debug { "Adding database version $version" };
+  $_[0]->version_rs->create($_[1])
+}
+
+sub delete_database_version {
+  my $version = $_[1]->{version};
+  log_debug { "Deleting database version $version" };
+  $_[0]->version_rs->search({ version => $version})->delete
+}
 
 1;
 
+# vim: ts=2 sw=2 expandtab
+
 __END__
 
-vim: ts=2 sw=2 expandtab
+=head1 SEE ALSO
+
+This class is an implementation of
+L<DBIx::Class::DeploymentHandler::HandlesVersionStorage>.  Pretty much all the
+documentation is there.