<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>5ffc2f28dd5ee94462f0ff3a2d1426cdab689d12</id>
      </parent>
    </parents>
    <author>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </author>
    <url>http://github.com/jeremyevans/third_base/commit/9b9e13b456b63ce67ad837f3978269251b5463c4</url>
    <id>9b9e13b456b63ce67ad837f3978269251b5463c4</id>
    <committed-date>2009-08-17T13:21:03-07:00</committed-date>
    <authored-date>2009-08-17T13:21:03-07:00</authored-date>
    <message>Add strptime based parsers, many bugfixes, bump version to 1.2.0

This is a major update that fixes many bugs and allows the user
to more easily create custom parsers using the strptime format
string syntax.  Example:

  DateTime.add_parser(:mine, '%Z %m~%Y~%d %S`%M`%H')

With a strptime-based parser, you don't need to provide a block,
and you probably shouldn't.

The following minor improvements are included in this commit:

* An additional parser has been added by default, so that the
  following code will work:

    DateTime.parse(Time.now.to_s)
    DateTime.parse(Time.now.strftime('%+'))

* You can now have a custom parser return a Date/DateTime object
  that you create.  If you provide a hash, it still creates a
  Date/DateTime object for you using the hash as parameters.  Any
  object other than a hash that is returned by a parser block is
  returned directly.

* The default parsers all understand the timezones that are
  used by Time.now.strftime('%+'), so you can use PST, EDT, UTC,
  A-Z, etc..

* The %z strptime/strftime format string modifier now operates more
  closely to standard ruby.

* A parser where only the offset is parsed will now assume the
  current seconds instead of 0 seconds.</message>
    <tree>80b354c92cbacb100bc4e8168de8494bd3b2b67e</tree>
    <committer>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b31b918a8ba7ef82aa5f5e0039c37996cc30e659</id>
      </parent>
    </parents>
    <author>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </author>
    <url>http://github.com/jeremyevans/third_base/commit/32db77410ff0fa5b879db2770bed8a2d21f68b39</url>
    <id>32db77410ff0fa5b879db2770bed8a2d21f68b39</id>
    <committed-date>2009-06-01T10:15:23-07:00</committed-date>
    <authored-date>2009-06-01T10:15:23-07:00</authored-date>
    <message>Fix Time.parse/Date._parse when using third_base; bump version to 1.1.0

ruby's Time.parse relies on Date._parse, and before third_base's
Date._parse operated differently than the standard Date._parse.
ruby's Date._parse returns a hash that only has keys where the
values were parsed out of the string.  third_base's Date._parse
used to include all possible values, instead of just those that
were parsed out of the string.

For example, for a string like &quot;06/01/2009&quot;, the standard
Date._parse would return {:year=&gt;2009, :mday=&gt;1, :mon=&gt;6}.
third_base's Date._parse would return :hour, :min, :sec,
:sec_fraction, :zone, and :offset keys in the hash.  This caused
problems with Time.parse because it used those values to build
a time object, and it could yield the wrong time, due to issues
with the offset.  Time.parse when using third_base's Date._parse
could give a time like 09:00:00-07:00 instead of 08:00:00-08:00.

This commit fixes that issue by making the hash returned by
Date._parse only include the keys parsed out of the string, and not
include parts guessed by using the current time.

This change unfortunately requires changing the DateTime parsers to
include a :not_parsed entry for values that were not_parsed out of
the string.  Since third_base allows custom parsers, those custom
parsers should change as well, though this should be backwards
compatible.

Because this change requires changes to external parsers to be
fully compatible, the version is getting bumped to 1.1.0 instead
of 1.0.2.

If you aren't using third_base's compatibility mode, there should
be no change by this commit, since it only affects Date._parse.

See the README section added if you are using a custom external
DateTime parser and want to see how to support the new :not_parsed
setting.</message>
    <tree>24d408292ae125b82962da940621c7f0da8e2315</tree>
    <committer>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e0fd4d15a751fdd66f44948936e10d9acd27ca8b</id>
      </parent>
    </parents>
    <author>
      <name>Tim Lucas</name>
      <email>t.lucas@toolmantim.com</email>
    </author>
    <url>http://github.com/jeremyevans/third_base/commit/37740f3f456e318f2c073868b7eff7349b1cff61</url>
    <id>37740f3f456e318f2c073868b7eff7349b1cff61</id>
    <committed-date>2009-01-07T10:13:08-08:00</committed-date>
    <authored-date>2008-12-26T22:13:42-08:00</authored-date>
    <message>There's 31 days in January (according to my knuckles)

Signed-off-by: Jeremy Evans &lt;code@jeremyevans.net&gt;</message>
    <tree>67151a1feeb5eff169615338e19ee8df55c2bd47</tree>
    <committer>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </committer>
  </commit>
  <commit>
    <parents type="array"/>
    <author>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </author>
    <url>http://github.com/jeremyevans/third_base/commit/d4909fc9c99624fa2dbc1e1082da260832c4607e</url>
    <id>d4909fc9c99624fa2dbc1e1082da260832c4607e</id>
    <committed-date>2008-11-21T11:42:56-08:00</committed-date>
    <authored-date>2008-11-21T11:42:56-08:00</authored-date>
    <message>Initial import</message>
    <tree>5800f68b20f879d619b39e5323c235f9880cb895</tree>
    <committer>
      <name>Jeremy Evans</name>
      <email>code@jeremyevans.net</email>
    </committer>
  </commit>
</commits>
