Data-Identifier

 view release on metacpan or  search on metacpan

lib/Data/Identifier/Interface/Subobjects.pm  view on Meta::CPAN


package Data::Identifier::Interface::Subobjects;

use v5.20;
use strict;
use warnings;

use parent 'Data::Identifier::Interface::Userdata';

use Carp;
use Scalar::Util qw(weaken);

our $VERSION = v0.28;

my %_types = (
    db          => 'Data::TagDB',
    extractor   => 'Data::URIID',
    tagmap      => 'Data::TagMap',
    fii         => 'File::Information',
    store       => 'File::FStore',
    parent      => __PACKAGE__,

lib/Data/Identifier/Interface/Subobjects.pm  view on Meta::CPAN

    my $weak = delete $opts{weak};

    delete $opts{allow_registered}; # for future use, not yet documented.

    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})};
        $storage->{$key} //= $v;
        croak 'Missmatch for key: '.$key unless $storage->{$key} == $v;
        weaken($storage->{$key}) if $weak;
    }

    croak 'Stray options passed' if scalar keys %opts;

    return $self;
}


sub so_get {
    my ($self, $name, %opts) = @_;



( run in 0.458 second using v1.01-cache-2.11-cpan-39bf76dae61 )