NKC-Transform-BIBFRAME2MARC
view release on metacpan or search on metacpan
BIBFRAME2MARC/Utils.pm view on Meta::CPAN
package NKC::Transform::BIBFRAME2MARC::Utils;
use base qw(Exporter);
use strict;
use warnings;
use Error::Pure qw(err);
use File::Spec::Functions qw(catfile);
use File::Share ':all';
use Readonly;
Readonly::Array our @EXPORT_OK => qw(list_versions);
our $VERSION = 0.07;
sub list_versions {
my $dir = shift;
if (! defined $dir) {
$dir = dist_dir('NKC-Transform-BIBFRAME2MARC');
}
opendir(my $dh, $dir) or err "Cannot open directory.";
my @versions = sort {
my ($a1, $a2, $a3) = split m/\./ms, $a;
my ($b1, $b2, $b3) = split m/\./ms, $b;
$a1 <=> $b1 or $a2 <=> $b2 or $a3 <=> $b3;
}
map { -f catfile($dir, $_) && m/^bibframe2marc-(.+)\.xsl$/ms ? $1 : () }
readdir($dh);
closedir($dh);
return @versions;
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
NKC::Transform::BIBFRAME2MARC::Utils - Utilities for bibframe2marc transformations.
=head1 SYNOPSIS
use NKC::Transform::BIBFRAME2MARC::Utils qw(list_versions);
my @versions = list_versions($dir);
=head1 SUBROUTINES
=head2 C<list_versions>
my @versions = list_versions($dir);
Get list of installed versions of bibframe2marc transformations.
C<$dir> is optional. Default value of C<$dir> variables is installation
directory.
Returns list.
=head1 ERRORS
list_versions():
Cannot open directory.
=head1 EXAMPLE
=for comment filename=list_versions.pl
use strict;
use warnings;
use File::Temp qw(tempdir);
use File::Spec::Functions qw(catfile);
use IO::Barf qw(barf);
use NKC::Transform::BIBFRAME2MARC::Utils qw(list_versions);
# Temporary directory.
my $temp_dir = tempdir(CLEANUP => 1);
( run in 0.517 second using v1.01-cache-2.11-cpan-71847e10f99 )