Archive-BagIt
view release on metacpan or search on metacpan
lib/Archive/BagIt/Role/Manifest.pm view on Meta::CPAN
package Archive::BagIt::Role::Manifest;
use strict;
use warnings;
use namespace::autoclean;
use Carp qw( croak carp );
use File::Spec ();
use Moo::Role;
with 'Archive::BagIt::Role::Plugin';
with 'Archive::BagIt::Role::Portability';
# ABSTRACT: A role that handles all manifest files for a specific Algorithm
our $VERSION = '0.101'; # VERSION
has 'algorithm' => (
is => 'rw',
#isa=>'HashRef',
);
has 'manifest_file' => (
is => 'rw',
lazy => 1,
builder => '_build_manifest_file',
);
sub _build_manifest_file {
my $self = shift;
my $algorithm = $self->algorithm()->name;
my $file = File::Spec->catfile($self->bagit->metadata_path, "manifest-$algorithm.txt");
return $file if (-f $file);
return;
}
has 'tagmanifest_file' => (
is => 'rw',
lazy => 1,
builder => '_build_tagmanifest_file'
);
sub _build_tagmanifest_file {
my $self = shift;
my $algorithm = $self->algorithm()->name;
my $file = File::Spec->catfile( $self->bagit->metadata_path, "tagmanifest-$algorithm.txt");
return $file if (-f $file);
return;
}
sub BUILD {}
after BUILD => sub {
my $self = shift;
my $algorithm = $self->algorithm->name;
$self->{bagit}->{manifests}->{$algorithm} = $self;
};
has 'manifest_entries' => (
is => 'ro',
lazy => 1,
builder => '_build_manifest_entries',
);
has 'tagmanifest_entries' => (
is => 'ro',
( run in 0.700 second using v1.01-cache-2.11-cpan-85f18b9d64f )