From d11c1030533c79d406b12a0b4b26d33af288ffb3 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Mon, 12 Nov 2007 18:02:00 +0000 Subject: [PATCH] chronic refinement patch from marcus williams git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@693 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- lib/sup/index.rb | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/sup/index.rb b/lib/sup/index.rb index ecc2a3d..6693db1 100644 --- a/lib/sup/index.rb +++ b/lib/sup/index.rb @@ -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}!" -- 2.45.2