The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension DateTime::Format::Natural.

0.39 Sun Sep  9 00:41:30 CEST 2007

 - Improved handling of dates when no format-string was provided
   or was unsuitable. [rt #29227 - Shawn M. Moore <sartak@gmail.com>]

 - Implemented mechanisms to mark tokens when processed and added
   an according getter method for multiple tokens.

0.38_01 Tue Sep  4 18:10:48 CEST 2007

 - Undone use'ing constant with a hashref provided (breaks on
   older versions of Perl [testers #598724 - David Cantrell <david@cantrell.co.uk>]).

0.38 Wed Aug 29 22:07:00 CEST 2007

 - Redone code formatting.

0.37 Sun Aug 19 11:33:05 CEST 2007

 - Fixed the parsing of unambigious dates such as "next [month]" &
   "last [month]" while the 'prefer_future' option is enabled.
 
 - Explicitly call methods within the superclass with 'SUPER::'.

 - Documented the 'prefer_future' switch in scripts/dateparse.

0.36 Thu Jun  7 13:42:35 CEST 2007

 - Fixed version numbers which were treated as floating point numbers,
   not as v-string. [rt #27350 - Andres J. König <andreas.koenig@anima.de>]

 - Fixed _set_datetime() which failed whenever a 31st day didn't exist
   in the current month. [rt #27360 - Chia-liang Kao <clkao@clkao.org>]

 - Reversed the order of the day/month/year setter calls within
   parse_datetime(). [mike <pulsation@gmail.com>]

 - Added a 'prefer_future' option to turn ambigious weekdays/months
   to their futuristic equivalents - implemented by counting how often
   an unit was being modified by the appropriate setter call within the
   Base class. [Shawn M. Moore <sartak@gmail.com>]

 - Extended the test-suite to include more exhaustive tests and accordingly
   updated the EXAMPLES in the language metadata classes.

 - Introduced the public method trace() which will show which methods were
   called within the Base class and how often certain units were modified
   by according Datetime setter calls.

0.35 Wed May 23 21:00:39 CEST 2007

 - Implemented next [monthname] & last [monthname] parsing and
   added according tests. [Shawn M. Moore <sartak@gmail.com>]

 - Added tests for the constant daytime values.

 - Albeit it's unlikely that someone will ever subclass Lang/Base.pm,
   a bug in the statement involving bless() within the constructor has 
   been fixed (ref($class) 'check' must come first, otherwise subclassing
   is impossible).

 - scripts/dateparse is now being installed.

0.34 Sun May 20 17:09:09 CEST 2007

 - Hopefully fixed "Type of arg 1 to List::MoreUtils::any must be block
   or sub {} (not list)" errors.

 - Added _init_check() which is being called by _init() to validate
   the options passed to the constructor new().

0.33 Sat May 19 03:08:29 CEST 2007

 - Got mostly rid of the "no warnings 'uninitialized'" statements and
   ensured that no undefined values will be encountered by introducing
   an according token accessor which will return either a reference to
   an existing token or to a defined string (in case a token does not
   yield any defined value).

 - Disallowed 'am/pm' for german language metadata since they're
   not known to a native german speaker assuming it is referred
   to the german language itself. [Urs Stotz <stotz@gmx.ch]

 - Introduced two methods, success() and error(). Former indicates
   whether the parsing of a date/time string succeeded or not; latter
   provides the error string if former one should fail. Furthermore,
   the entire system is now reliant upon both of them and doesn't
   croak any longer if parsing should fail.

 - Added according getter/setter/unsetter accessors for the internal
   error and failure attributes.

0.32 Thu May 10 23:52:00 CEST 2007

 - Replaced some conditional variables with early return statements.

 - Introcuded Date::Calc's check_date() and check_time() to assure
   for integrity of date/time values submitted to according setter
   methods.

 - Wrapped check_date() and check_time() in subs which croak upon
   error and supply the type of value and the actual value in the
   message delivered to the caller, otherwise return true.

 - Separated datetime_parse_duration() logic from datetime_parse()
   and added according documentation [Cory Watson <jheephat@gmail.com>]

0.31 Sun May  6 02:57:13 CEST 2007

 - Replaced undef on hash elements within Natural/Base.pm with delete.

 - Changed 'time_zone' parameter's value in calls to DateTime->now()
   with 'floating' instead of 'local'. This should function as fix
   to failures reported on MSWin & Cygwin platforms according to
   [Dave Rolsky <urth@autarch.org>].

 - Due to an unlocalized signal warning handler, uninitialized
   warnings in code which either required/use'd DateTime::Format::Natural
   were being supressed. The handler has been commented out (and left in
   for debugging/development purpose) and replaced by an according
   'no warnings' statements in both Natural.pm & Natural/Base.pm.

0.30 Sun Apr 29 02:33:16 CEST 2007

 - Fixed some spurious date results assumptions in t/01-parse_en.t
   and t/02-parse_de.t which were caused by a bug.

 - Extended documentation to include options pertaining to method
   calls within the documentation in listed form.

 - Added functionality to change the default values for specific
   daytimes. Furthermore, according testcases have been added.

0.29 Mon Apr 16 22:00:27 CEST 2007

 - Support for parsing seconds and minutes in ago stanzas
   [Tuomas Jormola <tj@solitudo.net>]

 - Added according testcases to the testsuite for parsing
   seconds and minutes in ago stanzas.

 - Modified scripts/dateparse.pl to return a absolute time
   with precision in seconds.

0.28 Wed Apr 11 01:44:49 CEST 2007

 - Moved timespan separator definition to language metadata
   base classes.

 - scripts/dateparse.pl language chosen always defaulted
   to 'en' irrespective whether another one has been chosen
   or not. Changed it to only fallback to the default language
   ('en') if no other one has been provided.

 - Added t/03-parse_format.t to the testsuite which tests datestrings
   with various differing format strings.
 
0.27 Tue Apr 10 22:19:15 CEST 2007

 - Mentioning Tatsuhiko Miyagawa as the inspiration source in
   the documentation's Credits section.

 - Implemented a simple timespan calculation, provided the natural
   dates are separated by the literal token 'to' (case-insensitive).
   [Mark Stosberg <mark@summersault.com>]

0.26 Wed Mar 14 13:15:07 CET 2007

 - The constructor accepts now an optional 'format' parameter specifying
   in which format numeric dates should be parsed (either / or - may be
   used to separate the units). [mike <pulsation@gmail.com>]

0.25 Sun Mar 11 23:02:45 CET 2007

 - Separated the logic within parse_datetime() to _process()
   and according internal subroutines.

 - Commented the majority of functions within Base.pm.

 - Introduced List::MoreUtils' any() & none() functions;
   deprecated use of 'no warnings' statement which need
   arose by accessing indexes of @{$self->{tokens}} where
   no members were present.

 - Created TODO file with pending items.

0.24 Wed Jan 17 22:51:51 CET 2007

 - Introduced a warning handler to silence the warnings about
   undefined values when pattern matching, subtracting and
   performing string comparisons in Natural/Base.pm.

 - Merged the "frontend" scripts to a single one taking
   optionally a language argument indicating the country
   code among other arguments.

 - Made 01-parse_en.t's & 02-parse_de.t's code more readable
   by adding some more separating lines.

 - Moved 'our' declarations in DE.pm & EN.pm towards the top.

0.23 Tue Jan 16 19:51:50 CET 2007

 - The language metadata classes have an AUTOLOAD handler & __new
   constructor automatically exported to their namespaces. Because
   some local fiddling with AUTOLOAD and dynamic variable lookup is
   done, a bunch of symbolic references are created on-the-fly.

0.22 Tue Jan 16 02:58:15 CET 2007

 - Previously four digits were occasionally interpreted as year
   and as well as time based upon context. Disambiguated usage
   as year (applies to all Lang:: classes) and fixed all test
   cases were bogus return values from parse_datetime() have
   been expected in order to have no tests fail.

 - Bound the temporary disablement of strictness for references
   to a tighter scope (applies to all Lang:: classes).

0.21 Tue Nov 28 09:31:20 CET 2006

 - Corrected the classes names provided to use_ok() in 00-load.t.
   [SEKIMURA sekimura@gmail.com]

0.20 Tue Nov 28 01:44:46 CET 2006

 - Optimised the regular expressions used in the AUTOLOAD routine
   in the language classes.

0.19 Mon Nov 27 20:06:17 CET 2006

 - Added to DE.pm & EN.pm an AUTOLOAD handler for each of them.
   The subroutine called prefixed with two underscores will be 
   translated to an according variable name without underscores.
   The parameter to the subroutine will function as variable
   lookup key.

0.18 Sun Nov 26 17:35:17 CET 2006

 - Fixed all occurences of the global weekday hash by adding the
   missing key "{data}" to the variable lookup.

0.17 Sun Nov 26 16:50:14 CET 2006

 - Encapsulated the metadata within the language packages in an
   object which class gets subclassed from Natural.pm.
   [Tatsuhiko Miyagawa <miyagawa@gmail.com>]

0.16 Sat Nov 25 18:09:48 CET 2006

 - Added missing '1;' to the documentation of Authoring.pod.

 - Changed strings in Authoring.pod to be italic.

 - The testsuite now contains a german aquivalent of the english
   parsing test.

0.15 Sam Nov 25 16:49:22 CET 2006

 - Added DateTime::Format::Natural::Lang::Authoring documentation.

0.14 Sat Nov 25 14:34:33 CET 2006

 - Corrected broken package definition.

0.13 Sat Nov 25 04:14:54 CET 2006

 - Separated data from logic by keeping all regular expressions in
   separate packages.

 - Language support for german has been included.

0.12 Fri Nov 24 20:36:37 CET 2006

 - Added some basic tests to the testsuite which exercice
   converting natural format strings to an according datetime object.

 - Enhanced the collection of valid strings that are translated.

0.11 Fri Nov 24 02:15:30 CET 2006

 - Refactored the code where duplicated chunks were available.

 - Evaluated whether the current listed expressions pass the parsing.

0.10 Thu Nov 23 01:14:44 CET 2006

 - Substituted additions/subtractions where possible with the
   appropriate DateTime method calls.

 - An Exception is thrown if no valid input has been given.
   [Tatsuhiko Miyagawa <miyagawa@gmail.com>]

0.09 Sun Nov 19 14:38:24 CET 2006

 - Date strings with slashes are now being split and assigned
   to the appropriate variables.

 - Moved the initialization of object data into a sub.
   Same procedure for the code chunk returning a datetime object.

0.08 Sun Nov 19 12:30:24 CET 2006

 - Code is now object-oriented.

0.07 Sat Oct 28 17:16:53 CEST 2006

 - Replaced all tabs in EN.pm with regular spaces (4).

0.06 Wed Oct 25 20:24:38 CEST 2006

 - Substituted exporting functions with an object-oriented constructor.
   parse_datetime() is now called as a method.
   [Dave Rolsky <urth@autarch.org>]

 - parse_datetime() takes either a datestring or an options hash.
   [Dave Rolsky <urth@autarch.org>]

0.05 Wed Oct 25 11:27:26 CEST 2006

 - Moved from namespace DateTime::Natural::Parse to DateTime::From::Natural::EN
   [Dave Rolsky <urth@autarch.org>]

 - Renamed natural_parse() to parse_datestring().

0.04 Wed Oct 25 00:17:01 CEST 2006

 - Updated the code to process some "complex" input.

 - Actualized the documentation accordingly.

0.03 Tue Oct 24 01:25:03 CEST 2006
 
 - Appended the i(ncasesensitive) Modifier to a few regular expressions.

 - Fixed the broken newlines for the example documentation.

0.02 Mon Oct 23 23:22:41 CEST 2006

 - DateTime has been added to the dependencies list.
 
 - natural_parse() returns a DateTime object [Clayton L. Scott <clscott@cpan.org>]
 
 - Extended documentation to include some example human readable time strings.

0.01 Sun Oct 22 22:15:54 CEST 2006

 - Initial version.