0.000_009 2017-02-15 T. R. Wyant
Ditch special-case __format() code for '%N'. With the
implementation of Glibc field widths, this can now just go through
normal numeric processing, and (I hope) quash an error found by
Andreas König's smoker.
Converge __format() toward Glibc extensions:
- Add user-specified field width.
- Add '0', '_', and '-' padding flags.
- Add '^' and '#' case-change flags.
- Unrecognized specifications are left as-is, except for the actions
of flags. So '%.' remains '%.', rather than becoming '.' as the
BSD functionality would have it. And '%Ez' remains '%Ez' rather
than being interpreted the same as '%z'. But '%^Ez' becomes
'%^EZ', which looks like a bug to me, but that's what Glibc
strftime() does.
Use '%-e' in the implementation of '%Ex', to mimic better the
historical output of (e.g.) Date::Tolkien::Shire->on_date().
Add '%v' (OK, that's a BSD extension, but I could not resist).
0.000_008 2017-02-14 T. R. Wyant
Change __format() format %ED to do __on_date_accented(). The
previous functionality of %ED is obtained (for both %ED and %Ed) by
putting %En before. This causes %ED and %Ed to add a leading "\n",
but only if their result is defined.
Have __format() interpret { month = >0, day => number } as being
equivalent to { holiday => number }, when invoked with a hash rather
than an object.
Add eg/on-date option -accented, which gives you accented proper
nouns.
0.000_007 2017-02-13 T. R. Wyant
First CPAN release.
Add __on_date_accented(). This subroutine wraps __on_date(), but
returns proper nouns accented as they are in The Lord Of The Rings.
0.000_006 2017-02-10 T. R. Wyant
Clean up eg/ scripts.
Add __format format %ED, for on_date() support. This is like %Ed,
but a leading "\n" is added if the result is not null. This means
the usual on_date() method can be duplicated by __format( $date,
'%Ex%n%ED' );
0.000_005 2017-02-08 T. R. Wyant
Add __holiday_name_to_number() and __month_name_to_number().
These convert a holiday name to a holiday number and a month name to a
month number respectively. Numeric arguments are simply returned.
Unrecognized arguments return 0.
Remove creeping 5.8-isms, so that we actually work under 5.6.2.
0.000_004 2017-02-07 T. R. Wyant
Correct __rata_die_to_year_day(). Also test it more exhaustively
(if author) or at least in a more targeted manner (if not).
Also correct GREGORIAN_RATA_DIE_TO_SHIRE, using a better-thought-out
computation.
0.000_003 2017-02-06 T. R. Wyant
Remove Shire-related constant from __year_day_to_rata_die() and
__rata_die_to_year_day(). This way they can be used on any calendar
having the Gregorian year-length rules.
Added exportable manifest constant GREGORIAN_RATA_DIE_TO_SHIRE to
convert from "true" (Gregorian-based) Rata Die to Shire Rata Die.
0.000_002 2017-02-06 T. R. Wyant
Have subroutines return 0 or '' as appropriate (meaning, for legal
dates to which they do not apply, e.g. month-related stuff on a
holiday).
Simplify __format conversion code. This mostly means things like %m on a
holiday producing '00', though it also means requiring a day_of_week()
method on the object passed in. This method was added to the hash
wrapper, implemented by constructing a {day_of_week} entry if one did
not already exist.
0.000_001 2017-02-05 T. R. Wyant
Initial version.