DBIx-Migration-Directories
view release on metacpan or search on metacpan
lib/DBIx/Migration/Directories.pm view on Meta::CPAN
}
}
if(!@rv) {
croak qq{Failed to find a migration path from $from_ver to $to_ver};
}
return(@rv);
}
sub ls_overlay {
my($self, $dir, $overlay) = @_;
my %dir = map { $_->basename => $_ } $self->ls($dir);
$dir{$_->basename} = $_
foreach grep { !$dir{$_->basename} } $self->ls($overlay);
return map { $dir{$_} } sort keys %dir;
}
sub ls {
my($self, $dn) = @_;
map { File::Basename::Object->new($_) }
sort map { "$dn/$_" } grep { !/^\./ && !/\~$/ && -f "$dn/$_" } readdir do {
my $d; opendir($d, $dn) ? $d : croak qq{opendir("$dn") failed: $!};
};
}
lib/DBIx/Migration/Directories.pm view on Meta::CPAN
sub read_sql_file {
my($self, $file) = @_;
\"$file", grep { m{\S}s } split(m{;\s*\n}s, $self->read_file($file));
}
sub dir_flat_sql {
my($self, $dir) = @_;
map { $self->read_sql_file($_) } $self->ls($dir);
}
sub dir_overlay_sql {
my($self, $dir, $overlay) = @_;
map { $self->read_sql_file($_) } $self->ls_overlay($dir, $overlay);
}
sub dir_sql {
my($self, $dir) = @_;
my $d1 = "$self->{dir}/$dir";
if($self->{common_dir} && $dir ne $self->{common_dir}) {
my $d2 = "$self->{common_dir}/$dir";
if(-d $d1 && -d $d2) {
$self->dir_overlay_sql($d1, $d2);
} elsif (-d $d2) {
$self->dir_flat_sql($d2);
} else {
$self->dir_flat_sql($d1);
}
} else {
$self->dir_flat_sql($d1);
}
}
( run in 0.569 second using v1.01-cache-2.11-cpan-49f99fa48dc )