<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>History.txt</filename>
    </added>
    <added>
      <filename>Manifest.txt</filename>
    </added>
    <added>
      <filename>README.txt</filename>
    </added>
    <added>
      <filename>Rakefile</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,7 +2,7 @@ require 'rubygems'
 
 SPEC = Gem::Specification.new do |s|
   s.name = 'chronic'
-  s.version = '0.1.4'
+  s.version = '0.1.5'
   s.author = 'Tom Preston-Werner'
   s.email = 'tom@rubyisawesome.com'
   s.homepage = 'http://chronic.rubyforge.org'</diff>
      <filename>chronic.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -34,6 +34,14 @@ require 'chronic/ordinal'
 require 'chronic/separator'
 
 module Chronic
+  VERSION = &quot;0.1.5&quot;
+  
   def self.debug; false; end
 end
 
+alias p_orig p
+
+def p(val)
+  p_orig val
+  puts
+end
\ No newline at end of file</diff>
      <filename>lib/chronic.rb</filename>
    </modified>
    <modified>
      <diff>@@ -108,7 +108,6 @@ module Chronic
       normalized_text.gsub!(/\byesterday\b/, 'last day')
       normalized_text.gsub!(/\bnoon\b/, '12:00')
       normalized_text.gsub!(/\bmidnight\b/, '24:00')
-      normalized_text.gsub!(/\bfrom now\b/, 'future')
       normalized_text.gsub!(/\bbefore now\b/, 'past')
       normalized_text.gsub!(/\bnow\b/, 'this second')
       normalized_text.gsub!(/\b(ago|before)\b/, 'past')</diff>
      <filename>lib/chronic/chronic.rb</filename>
    </modified>
    <modified>
      <diff>@@ -88,7 +88,7 @@ module Chronic
     
     def handle_m_d(month, day, time_tokens, options) #:nodoc:
       month.start = @now
-      span = month.next(options[:context])
+      span = month.this(options[:context])
       
       day_start = Time.local(span.begin.year, span.begin.month, day)
       
@@ -213,7 +213,7 @@ module Chronic
     
     def handle_s_r_p(tokens, options) #:nodoc:
       repeater = tokens[1].get_tag(Repeater)
-      
+            
       span = 
       case true
       when [RepeaterYear, RepeaterSeason, RepeaterSeasonName, RepeaterMonth, RepeaterMonthName, RepeaterFortnight, RepeaterWeek].include?(repeater.class)</diff>
      <filename>lib/chronic/handlers.rb</filename>
    </modified>
    <modified>
      <diff>@@ -60,7 +60,7 @@ class Chronic::Repeater &lt; Chronic::Tag #:nodoc:
   end
   
   def self.scan_for_times(token, options)
-    if token.word =~ /^\d{1,2}(:?\d{2})?$/
+    if token.word =~ /^\d{1,2}(:?\d{2})?([\.:]?\d{2})?$/
       return Chronic::RepeaterTime.new(token.word, options)
     end
     return nil
@@ -99,7 +99,7 @@ class Chronic::Repeater &lt; Chronic::Tag #:nodoc:
   # returns the next occurance of this repeatable.
   def next(pointer)
     !@now.nil? || raise(&quot;Start point must be set before calling #next&quot;)
-    [:future, :past].include?(pointer) || raise(&quot;First argument 'pointer' must be one of :past or :future&quot;)
+    [:future, :none, :past].include?(pointer) || raise(&quot;First argument 'pointer' must be one of :past or :future&quot;)
     #raise(&quot;Repeatable#next must be overridden in subclasses&quot;)
   end
   </diff>
      <filename>lib/chronic/repeater.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,6 +13,12 @@ class Chronic::RepeaterMonthName &lt; Chronic::Repeater #:nodoc:
         else @now.month &gt; target_month
           @current_month_begin = Time.local(@now.year + 1, target_month)
         end
+      when :none
+        if @now.month &lt;= target_month
+          @current_month_begin = Time.local(@now.year, target_month)
+        else @now.month &gt; target_month
+          @current_month_begin = Time.local(@now.year + 1, target_month)
+        end
       when :past
         if @now.month &gt; target_month
           @current_month_begin = Time.local(@now.year, target_month)
@@ -47,9 +53,12 @@ class Chronic::RepeaterMonthName &lt; Chronic::Repeater #:nodoc:
   def this(pointer = :future)
     super
     
-    pointer = :future if pointer == :none
-    
-    self.next(pointer)
+    case pointer
+    when :past
+      self.next(pointer)
+    when :future, :none
+      self.next(:none)
+    end
   end
   
   def width</diff>
      <filename>lib/chronic/repeaters/repeater_month_name.rb</filename>
    </modified>
    <modified>
      <diff>@@ -25,7 +25,7 @@ class Chronic::RepeaterTime &lt; Chronic::Repeater #:nodoc:
   end
   
   def initialize(time, options = {})
-    t = time.sub(/\:/, '')
+    t = time.gsub(/\:/, '')
     @type = 
     if (1..2) === t.size
       Tick.new(t.to_i * 60 * 60, true)
@@ -34,8 +34,13 @@ class Chronic::RepeaterTime &lt; Chronic::Repeater #:nodoc:
     elsif t.size == 4
       ambiguous = time =~ /:/ &amp;&amp; t[0..0].to_i != 0 &amp;&amp; t[0..1].to_i &lt;= 12
       Tick.new(t[0..1].to_i * 60 * 60 + t[2..3].to_i * 60, ambiguous)
+    elsif t.size == 5
+      Tick.new(t[0..0].to_i * 60 * 60 + t[1..2].to_i * 60 + t[3..4].to_i, true)
+    elsif t.size == 6
+      ambiguous = time =~ /:/ &amp;&amp; t[0..0].to_i != 0 &amp;&amp; t[0..1].to_i &lt;= 12
+      Tick.new(t[0..1].to_i * 60 * 60 + t[2..3].to_i * 60 + t[4..5].to_i, ambiguous)
     else
-      raise(&quot;Time cannot exceed four digits&quot;)
+      raise(&quot;Time cannot exceed six digits&quot;)
     end
   end
   </diff>
      <filename>lib/chronic/repeaters/repeater_time.rb</filename>
    </modified>
    <modified>
      <diff>@@ -24,6 +24,9 @@ class TestParsing &lt; Test::Unit::TestCase
     time = Chronic.parse(&quot;may 28 at 5pm&quot;, :now =&gt; @time_2006_08_16_14_00_00, :context =&gt; :past)
     assert_equal Time.local(2006, 5, 28, 17), time
     
+    time = Chronic.parse(&quot;may 28 at 5:32.19pm&quot;, :now =&gt; @time_2006_08_16_14_00_00, :context =&gt; :past)
+    assert_equal Time.local(2006, 5, 28, 17, 32, 19), time
+    
     # rm_od
     
     time = Chronic.parse(&quot;may 27th&quot;, :now =&gt; @time_2006_08_16_14_00_00)
@@ -124,6 +127,15 @@ class TestParsing &lt; Test::Unit::TestCase
     time = Chronic.parse(&quot;2006-08-20 03:00&quot;, :now =&gt; @time_2006_08_16_14_00_00)
     assert_equal Time.local(2006, 8, 20, 3), time
     
+    time = Chronic.parse(&quot;2006-08-20 03:30:30&quot;, :now =&gt; @time_2006_08_16_14_00_00)
+    assert_equal Time.local(2006, 8, 20, 3, 30, 30), time
+    
+    time = Chronic.parse(&quot;2006-08-20 15:30:30&quot;, :now =&gt; @time_2006_08_16_14_00_00)
+    assert_equal Time.local(2006, 8, 20, 15, 30, 30), time
+    
+    time = Chronic.parse(&quot;2006-08-20 15:30.30&quot;, :now =&gt; @time_2006_08_16_14_00_00)
+    assert_equal Time.local(2006, 8, 20, 15, 30, 30), time
+    
     # rm_sd_rt
     
     #time = Chronic.parse(&quot;jan 5 13:00&quot;, :now =&gt; @time_2006_08_16_14_00_00)
@@ -183,8 +195,11 @@ class TestParsing &lt; Test::Unit::TestCase
     time = Chronic.parse(&quot;4:00 in the morning&quot;, :now =&gt; @time_2006_08_16_14_00_00)
     assert_equal Time.local(2006, 8, 16, 4), time
     
-    #time = Chronic.parse(&quot;november 4&quot;, :now =&gt; @time_2006_08_16_14_00_00)
-    #assert_equal Time.local(2006, 11, 4, 12), time
+    time = Chronic.parse(&quot;november 4&quot;, :now =&gt; @time_2006_08_16_14_00_00)
+    assert_equal Time.local(2006, 11, 4, 12), time
+    
+    time = Chronic.parse(&quot;aug 24&quot;, :now =&gt; @time_2006_08_16_14_00_00)
+    assert_equal Time.local(2006, 8, 24, 12), time
   end
   
   def test_parse_guess_rrr
@@ -392,7 +407,7 @@ class TestParsing &lt; Test::Unit::TestCase
     # future
     
     time = Chronic.parse(&quot;3 years from now&quot;, :now =&gt; @time_2006_08_16_14_00_00)
-    assert_equal Time.local(2009, 8, 16, 14, 30, 30), time
+    assert_equal Time.local(2009, 8, 16, 14, 0, 0), time
     
     time = Chronic.parse(&quot;6 months hence&quot;, :now =&gt; @time_2006_08_16_14_00_00)
     assert_equal Time.local(2007, 2, 16, 14, 30, 30), time
@@ -401,7 +416,7 @@ class TestParsing &lt; Test::Unit::TestCase
     assert_equal Time.local(2006, 9, 27, 14, 30, 30), time
     
     time = Chronic.parse(&quot;1 week from now&quot;, :now =&gt; @time_2006_08_16_14_00_00)
-    assert_equal Time.local(2006, 8, 23, 14, 30, 30), time
+    assert_equal Time.local(2006, 8, 23, 14, 0, 0), time
     
     time = Chronic.parse(&quot;1 day hence&quot;, :now =&gt; @time_2006_08_16_14_00_00)
     assert_equal Time.local(2006, 8, 17, 14), time</diff>
      <filename>test/test_parsing.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>CHANGELOG</filename>
    </removed>
    <removed>
      <filename>README</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>2929d1069221911b0f623eb67ffc5fbdec569930</id>
    </parent>
  </parents>
  <author>
    <name>Tom Preston-Werner</name>
    <email>tom@mojombo.com</email>
  </author>
  <url>http://github.com/technoweenie/chronic/commit/7f3625b55aa203738dcdeaabe0588135ab44b594</url>
  <id>7f3625b55aa203738dcdeaabe0588135ab44b594</id>
  <committed-date>2007-01-15T17:35:36-08:00</committed-date>
  <authored-date>2007-01-15T17:35:36-08:00</authored-date>
  <message>bug fixes, seconds for all dates, hoe</message>
  <tree>1b3f1e347062850a09213040da43f0315ba4a0e4</tree>
  <committer>
    <name>Tom Preston-Werner</name>
    <email>tom@mojombo.com</email>
  </committer>
</commit>
