File-FStore
view release on metacpan or search on metacpan
lib/File/FStore.pm view on Meta::CPAN
use v5.10;
use strict;
use warnings;
use Carp;
use DBI;
use File::Spec;
use Data::Identifier;
use Data::Identifier::Generate;
use Scalar::Util qw(weaken);
use File::FStore::File;
use parent 'Data::Identifier::Interface::Known';
our $VERSION = v0.05;
use constant {
DEFAULT_LINK_STYLE => '1-level',
DEFAULT_STORE_STYLE => '1-level-contentise',
lib/File/FStore.pm view on Meta::CPAN
transaction_count => 0,
link_style => DEFAULT_LINK_STYLE,
store_style => DEFAULT_STORE_STYLE,
}, $pkg;
foreach my $key (keys %_types) {
my $v = delete $opts{$key};
next unless defined $v;
croak 'Invalid type for key: '.$key unless eval {$v->isa($_types{$key})};
$self->{$key} = $v;
weaken($self->{$key}) if $weak;
}
if (defined(my $link_style = delete $opts{link_style})) {
$link_style = DEFAULT_LINK_STYLE if $link_style eq 'default';
croak 'Not a valid link style: '.$link_style unless defined $_valid_link_styles{$link_style};
$self->{link_style} = $link_style;
}
if (defined(my $store_style = delete $opts{store_style})) {
$store_style = DEFAULT_STORE_STYLE if $store_style eq 'default';
lib/File/FStore.pm view on Meta::CPAN
sub attach {
my ($self, %opts) = @_;
my $weak = delete $opts{weak};
foreach my $key (keys %_types) {
my $v = delete $opts{$key};
next unless defined $v;
croak 'Invalid type for key: '.$key unless eval {$v->isa($_types{$key})};
$self->{$key} //= $v;
croak 'Missmatch for key: '.$key unless $self->{$key} == $v;
weaken($self->{$key}) if $weak;
}
croak 'Stray options passed' if scalar keys %opts;
}
#@returns Data::TagDB
sub db {
my ($self, %opts) = @_;
return $self->{db} if defined $self->{db};
lib/File/FStore.pm view on Meta::CPAN
(since v0.05)
The style to use for storing files. One of: C<1-level-contentise>, or C<1-level-contentise>.
B<Note:>
This does not affect already existing files.
=item C<weak>
Marks the value for C<db>, C<extractor>, C<fii> as weak.
If only a specific one needs needs to be weaken use L</attach>.
=back
=head2 close
$store->close;
Closes the store. Any interaction with this object or any related objects after this call is invalid.
=head2 setting
( run in 0.433 second using v1.01-cache-2.11-cpan-1f129e94a17 )