NAME
File::Spec::DatedPage - Parse a dated and page numbered file name in a system independant way.
SYNOPSIS
use File::Spec::DatedPage;
($volume, $basepath, $directory,
$startdate, $enddate, $document_title_section,
$startpage, $endpage, $page_title_section,
@extensions) = $obj->splitpath ($filepath);
$document_title_section = $obj->document_title_section;
$startpage = $obj->startpage;
$endpage = $obj->endpage;
$pages = $obj->pages;
$page_title_section = $obj->page_title_section;
$flag = $obj->ambiguous;
$obj = $obj->set_document_title_section ($document_title_section);
$obj = $obj->set_startpage ($startpage);
$obj = $obj->set_endpage ($endpage);
$obj = $obj->set_page_title_section ($page_title_section);
$name_body = $obj->reset_name_body;
Inheritance
UNIVERSAL
File::Spec::Unix
File::Spec::BaseParse
File::Spec::Dated
File::Spec::DatedPage
Description
Further splits a pathname string from what it's parent classes have already done. Using the example name_body string, XMAS-Title-Subtitle-note, it will be broken down further as:
document_title_section: XMAS-Title-Subtitle-note
startpage:
endpage
page_title_section:
The 'ambiguous' flag is not implemented yet: it is only talked about.. It should mark cases where a file extension might really be part of a filename as shown in File::Spec::Dated. This is the first semantic level at which it seems to matter. I have now made sure it does not exist outside this module so as to make it easy to purge if I decide it is an unworkable idea.
Examples
use File::Spec::DatedPage;
my $baz = File::Spec::DatedPage->new;
my @list = $baz->splitpath
("/my/base/Cards/19901225-XMAS-Title-Subtitle-note.tar.gz");
my $foo = File::Spec::DatedPage->new
("/my/base/Cards/19901225-XMAS-Title-Subtitle-note.tar.gz");
my $startpage = $foo->startpage;
my $endpage = $foo->endpage;
my $pages = $foo->pages;
my $dtitle = $foo->document_title_section;
my $ptitle = $foo->page_title_section;
$foo->set_startpage ("100");
$foo->set_endpage ("101");
$foo->set_document_title_section
("JournalOfIrreproduceableResults-QuantumBubbling" );
$foo->set_page_title_section ("ThePintEffect-allTheTimeInTheworldInAGuinness");
my $name_body = $foo->reset_name_body;
my $name = $foo->reset_name;
my $filename = $foo->reset_filename;
my $filepath = $foo->reset_pathname;
my @parts = $foo->reparse;
Class Variables
None.
Instance Variables
document_title_section Title of the whole document.
startpage Starting page string.
endpage Ending page string.
page_title_section Title specifically associated with the page.
ambiguous Set if it is ambiguous whether the leftmost file
extension really is a file extension.
Class Methods
None.
Instance Methods
- $flag = $obj->ambiguous
-
Return true if it is ambiguous whether the rightmost file extension is really a file extension.
- $document_title_section = $obj->document_title_section
-
Return the document title section string.
- $endpage = $obj->endpage
-
Return the ending pageid object or undef if there is none.
- $pages = $obj->pages
-
Return a $pages string suitable for use in an index or table of contents, eg "100", "100-101" or "42.1-42.2".
Return undef if there is no page information associated with this filespec.
- $page_title_section = $obj->page_title_section
-
Return the title string.
- $obj = $obj->set_endpage ($endpage)
-
Unconditionally set the end page.
- $obj = $obj->set_document_title_section ($document_title_section)
-
Unconditionally set the document_title_section string.
- $obj = $obj->set_startpage ($startpage)
-
Unconditionally set the start page.
- $obj = $obj->set_page_title_section ($page_title_section)
-
Unconditionally set the page_title_section.
- ($volume, $basepath, $directory, $startdate, $enddate, $document_title_section, $startpage, $endpage, $page_title_section, @extensions) = $obj->splitpath ($filepath)
-
Parses the filename into:
{firstdate{-lastdate}}{-title}{-startpage{-endpage}}{-subtitle}{.extensions}
and returns all the elements of the pathname and filename as a list. Completely reinitializes the object for the name $filepath.
- $startpage = $obj->startpage
-
Return the starting pageid object.
- $name_body = $obj->reset_name_body
-
Rebuild the name_body ivar from parts:
document_title_section + startpage + endpage + page_title_section -> name_body
Private Class Methods
None.
Private Instance Methods
- $obj = $obj->_init
-
Internal initializer.
This method is for the subclass initializer chaining and should not be used otherwise.
KNOWN BUGS
See TODO.
SEE ALSO
Fault::DebugPrinter, DMA::FSM, Document::PageId, File::Spec::Dated
AUTHOR
Dale Amon <amon@vnl.com>
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 348:
=back doesn't take any parameters, but you said =back 4
- Around line 365:
=back doesn't take any parameters, but you said =back 4