DTA::CAB::Format::Registry - registry for DTA::CAB I/O formats
use DTA::CAB::Format::Registry; ##======================================================================== ## Constructors etc. $reg = DTA::CAB::Format::Registry->new(%args); $reg = $reg->clear(); $reg = $reg->refresh(); $reg = $reg->compile(%opts); \%classReg = $reg->register(%classReg); ##======================================================================== ## Methods: Access \%classReg_or_undef = $reg->lookup(%opts); $fmt = $reg->newFormat($class_or_short_or_suffix, %opts); $class_or_undef = $reg->readerClass($class_or_short_or_suffix); $class_or_undef = $reg->writerClass($class_or_short_or_suffix); $fmt = $reg->newReader(%opts); $fmt = $reg->newWriter(%opts); $readerClass_or_undef = $CLASS_OR_OBJ->fileReaderClass($filename); $readerClass_or_undef = $CLASS_OR_OBJ->fileWriterClass($filename); \%classReg_or_undef = $reg->guessFilenameFormat($filename); \%classReg_or_undef = $reg->short2reg($shortname); \%classReg_or_undef = $reg->base2reg($basename);
DTA::CAB::Format::Registry provides an object-oriented API for maintainence and easy access to a set of DTA::CAB::Format subclasses.
$reg = DTA::CAB::Format::Registry->new(%args);
%$obj, %args:
reg => [\%classReg, ...], ##-- registered classes short2reg => {$short=>\%classReg, ...}, ##-- short names to registry entries base2reg => {$base =>\%classReg, ...}, ##-- base names to registry entries
each \%classReg is a HASH-ref of the form:
name => $basename, ##-- basename for the class (package name) short => $shortname, ##-- short name for the class (default = package name suffix, lower-cased) readerClass => $readerClass, ##-- default: $base ##-- NYI writerClass => $writerClass, ##-- default: $base ##-- NYI filenameRegex => $regex, ##-- filename regex for guessFilename()
See also "register".
$reg = $reg->clear();
Clears the registry.
$reg = $reg->refresh();
Re-registers all formats in $reg->{reg}.
$reg = $reg->compile(%opts);
Adds the following keys to each registry item \%classReg:
reader => $readerObj, ##-- = $classReg{readerClass}->new(%opts) writer => $writerObj, ##-- = $classReg{writerClass}->new(%opts)
\%classReg = $reg->register(%classReg);
%classReg:
name => $basename, ##-- basename for the class (package name): REQUIRED short => $shortname, ##-- short name for the class (default = package name suffix, lower-cased) readerClass => $readerClass, ##-- default: $base ##-- NYI writerClass => $writerClass, ##-- default: $base ##-- NYI filenameRegex => $regex, ##-- filename regex for guessFilenameFormat()
\%classReg_or_undef = $reg->lookup(%opts);
Get the most recently registered entry for %opts, which may contain (in order of decreasing priority):
class => $class, ##-- short name, basename, or "DTA::CAB::Format::" suffix file => $filename, ##-- attempt to guess format from $filename
$fmt = $reg->newFormat($class_or_short_or_suffix, %opts);
Creates a new format of the registered base class matching $class_or_short_or_suffix; backwards-compatible.
$class_or_undef = $reg->readerClass($class_or_short_or_suffix);
Get registered reader class for $class_or_short_or_suffix
$class_or_undef = $reg->writerClass($class_or_short_or_suffix);
Get registered writer class for $class_or_short_or_suffix
$fmt = $reg->newReader(%opts);
Create and return a new reader object. %opts may contain any %lookup options (class,file), and are otherwise passed to READERCLASS->new()
$fmt = $reg->newWriter(%opts);
Create and return a new writer object. %opts may contain any %lookup options (class,file), and are otherwise passed to WRITERCLASS->new().
$readerClass_or_undef = $CLASS_OR_OBJ->fileReaderClass($filename);
Backkwards-compatible wrapper for lookup(); attempts to guess reader class name from $filename.
$readerClass_or_undef = $CLASS_OR_OBJ->fileWriterClass($filename);
Backwards-compatible wrapper for lookup(); attempts to guess writer class name from $filename.
\%classReg_or_undef = $reg->guessFilenameFormat($filename);
Backwards-compatible wrapper for $reg->lookup(file=>$filename).
\%classReg_or_undef = $reg->short2reg($shortname);
Gets registry entry for short name $shortname.
\%classReg_or_undef = $reg->base2reg($basename);
Gets registry entry for class basename $basename.
Bryan Jurish <moocow@cpan.org>
Copyright (C) 2011-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.
dta-cab-convert.perl(1), DTA::CAB::Format(3pm), DTA::CAB(3pm), perl(1), ...
To install DTA::CAB, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DTA::CAB
CPAN shell
perl -MCPAN -e shell install DTA::CAB
For more information on module installation, please visit the detailed CPAN module installation guide.