]> git.cworth.org Git - sup/commitdiff
chronic refinement patch from marcus williams
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 12 Nov 2007 18:02:00 +0000 (18:02 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 12 Nov 2007 18:02:00 +0000 (18:02 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@693 5c8cc53c-5e98-4d25-b20a-d8db53a31250

lib/sup/index.rb

index ecc2a3d65df942727bb96e6d2e80e7da05670af4..6693db1b00f055252dbde6c89e2f5b6216dac5e6 100644 (file)
@@ -391,16 +391,21 @@ protected
     
     if $have_chronic
       chronic_failure = false
-      result = result.gsub(/\b(before|after):(\((.+?)\)\B|(\S+)\b)/) do
+      result = result.gsub(/\b(before|on|in|after):(\((.+?)\)\B|(\S+)\b)/) do
         break if chronic_failure
         field, datestr = $1, ($3 || $4)
-        realdate = Chronic.parse datestr
+        realdate = Chronic.parse(datestr, :guess => false)
         if realdate
-          Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate}"
-          if field == "after"
-            "date:(>= #{sprintf "%012d", realdate.to_i})"
+          case field
+          when "after"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate.end}"
+            "date:(>= #{sprintf "%012d", realdate.end.to_i})"
+          when "before"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate.begin}"
+            "date:(<= #{sprintf "%012d", realdate.begin.to_i})"
           else
-            "date:(<= #{sprintf "%012d", realdate.to_i})"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate}"
+            "date:(<= #{sprintf "%012d", realdate.end.to_i}) date:(>= #{sprintf "%012d", realdate.begin.to_i})"
           end
         else
           BufferManager.flash "Don't understand date #{datestr.inspect}!"