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