VERSION

version 0.81

METHODS

Useful

new

Standard constructor. Returns a blessed hash; any arguments are placed in the hash. This is useful for storing information between methods.

generic_parser

This is a method provided solely for the benefit of \*(C`Parser\*(C' implementations. It semi-neatly abstracts a lot of the work involved.

Basically, it takes parameters matching the assorted callbacks from the parser declarations and makes a coderef out of it all.

Currently recognized callbacks are:

  • on_match

  • on_fail

  • preprocess

  • postprocess

Methods for subclassing

These are methods you should define when writing your own subclass.

Note: these methods do not exist in this class. There is no point trying to call \*(C`$self->SUPER::do_match( ... )\*(C'.

do_match

\*(C`do_match\*(C' is the first phase. Arguments are the date and @args. \*(C`self\*(C', \*(C`label\*(C', \*(C`args\*(C'. Return value must be defined if you match successfully.

post_match

\*(C`post_match\*(C' is called after the appropriate callback out of \*(C`on_match\*(C'/\*(C`on_fail\*(C' is done. It's passed the date, the return value from \*(C`do_match\*(C' and the parsing hash.

Its return value is used as the \*(C`post\*(C' argument to the \*(C`postprocess\*(C' callback, and as the second argument to \*(C`make\*(C'.

make

\*(C`make\*(C' takes the original input, the return value from \*(C`post_match\*(C' and the parsing hash and should return a \*(C`DateTime\*(C' object or undefined.

Delegations

For use of \*(C`Parser\*(C', this module also delegates \*(C`valid_params\*(C' and \*(C`params\*(C'. This is just convenience to save typing the following:

    DateTime::Format::Builder::Parser->valid_params( blah )

Instead we get to type:

$self->valid_params( blah ); _\|_PACKAGE_\|_->valid_params( blah );

WRITING A SUBCLASS

Rather than attempt to explain how it all works, I think it's best if you take a look at Regex.pm and Strptime.pm as examples and work from there.

SUPPORT

See DateTime::Format::Builder for details.

RELATED TO DateTime::Format::Builder::Parser::generic…

\*(C`[email protected]\*(C' mailing list.

http://datetime.perl.org/

perl, DateTime, DateTime::Format::Builder, DateTime::Format::Builder::Parser.

AUTHORS

COPYRIGHT AND LICENSE

This software is Copyright (c) 2013 by Dave Rolsky.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)