DateTim...generic(3)

πŸ’– DateTim...generic(3) πŸ’–

hey bestie, welcome to the DateTim...generic(3) page β€” it's coming at you from the User Contributed Perl Documentation corner of the universe, and it's giving β€œuseful routines” energy ✨

πŸŽ€ NAME πŸŽ€

DateTime::Format::Builder::Parser::generic β€” useful routines, bestie. That's the whole name, no cap πŸ’…

🌈 VERSION 🌈

version 0.83 β€” periodt ✨

✨ METHODS ✨

🌸 Useful

okay so here are the useful bits:

new β€” standard constructor, bestie. It returns a blessed hash; literally any arguments you pass get placed in that hash. This is useful for storing information between methods. 🫢

generic_parser β€” this one is a method provided solely for the benefit of Parser implementations, no cap. 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 $self->SUPER::do_match( ... ). 😭

do_match β€” do_match is the first phase. Arguments are the date and @args. "self", "label", "args". Return value must be defined if you match successfully. πŸ’–

post_match β€” post_match is called after the appropriate callback out of on_match/on_fail is done. It's passed the date, the return value from do_match and the parsing hash.

Its return value is used as the post argument to the postprocess callback, and as the second argument to make. 🌟

make β€” make takes the original input, the return value from post_match and the parsing hash and should return a DateTime object or undefined. πŸŽ€

πŸ’… Delegations

For use of Parser, this module also delegates valid_params and params. This is just convenience to save typing the following:

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

Instead we get to type:

$self->valid_params(...);
__PACKAGE__->valid_params(...);

slay, honestly πŸ’…βœ¨

🧚 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. fr fr, those are the vibe check files πŸ¦‹

🌟 SEE ALSO

  • "datetime@perl.org" mailing list.
  • http://datetime.perl.org/
  • perl, DateTime, DateTime::Format::Builder, DateTime::Format::Builder::Parser.

🫢 SUPPORT

Bugs may be submitted at <https://github.com/houseabsolute/DateTime-Format-Builder/issues>.

I am also usually active on IRC as 'autarch' on irc://irc.perl.org. 🫑

πŸ”₯ SOURCE

The source code repository for DateTime-Format-Builder can be found at <https://github.com/houseabsolute/DateTime-Format-Builder>.

πŸ‘‘ AUTHORS

  • Dave Rolsky <autarch@urth.org>
  • Iain Truskett <spoon@cpan.org>

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

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

The full text of the license can be found in the LICENSE file included with this distribution.


okay bestie, that's the whole page! mwah πŸ’‹ β€” this footer energy comes from perl v5.40.0, dated 2023-01-15, on DateTim...generic(3). You're welcome, go slay your DateTime parsing πŸ«ΆπŸ’–

πŸ“¦ where this page comes from