fix dep, fix doc
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / DeployMethod / SQL / Translator.pm
index e64dd2c..7d5f622 100644 (file)
@@ -170,19 +170,18 @@ method _run_sql_and_perl($filenames) {
         $storage->_query_end($line);
       }
     } elsif ( $filename =~ /^(.+)\.pl$/ ) {
-      my $package = $1;
       my $filedata = do { local( @ARGV, $/ ) = $filename; <> };
-      # make the package name more palateable to perl
-      $package =~ s/\W/_/g;
 
       no warnings 'redefine';
-      eval "package $package;\n\n$filedata";
+      my $fn = eval "$filedata";
       use warnings;
 
-      if (my $fn = $package->can('run')) {
-        $fn->($self->schema);
+               if ($@) {
+        carp "$filename failed to compile: $@";
+               } elsif (ref $fn eq 'CODE') {
+        $fn->($self->schema)
       } else {
-        carp "$filename should define a run method that takes a schema but it didn't!";
+        carp "$filename should define an anonymouse sub that takes a schema but it didn't!";
       }
     } else {
       croak "A file ($filename) got to deploy that wasn't sql or perl!";
@@ -216,20 +215,18 @@ sub preinstall_scripts {
   for my $filename (@files) {
     # We ignore sql for now (till I figure out what to do with it)
     if ( $filename =~ /^(.+)\.pl$/ ) {
-      my $package = $1;
       my $filedata = do { local( @ARGV, $/ ) = $filename; <> };
-      # make the package name more palateable to perl
-      $package =~ s/\W/_/g;
 
-      no warnings 'redefine';
-      eval "package $package;\n\n$filedata";
+               no warnings 'redefine';
+      my $fn = eval "$filedata";
       use warnings;
+
                if ($@) {
         carp "$filename failed to compile: $@";
-               } elsif (my $fn = $package->can('run')) {
+               } elsif (ref $fn eq 'CODE') {
         $fn->()
       } else {
-        carp "$filename should define a run sub but it didn't!";
+        carp "$filename should define an anonymous sub but it didn't!";
       }
     } else {
       croak "A file ($filename) got to preinstall_scripts that wasn't sql or perl!";
@@ -556,8 +553,8 @@ generic enough to run on all databases.  Good luck with that one.
 
 =head1 PERL SCRIPTS
 
-A perl script for this tool is very simple.  It merely needs to contain a
-sub called C<run> that takes a L<DBIx::Class::Schema> as it's only argument.
+A perl script for this tool is very simple.  It merely needs to contain an
+anonymous sub that takes a L<DBIx::Class::Schema> as it's only argument.
 A very basic perl script might look like:
 
  #!perl
@@ -565,7 +562,7 @@ A very basic perl script might look like:
  use strict;
  use warnings;
 
- sub run {
+ sub {
    my $schema = shift;
 
    $schema->resultset('Users')->create({