sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit ffab039c8c659066612841c7ae60e1bf5ff84b99
parent 259a0ceaaf96a3c30d52cc029ea401b9ab36efb3
Author: Whyme Lyu <callme5long@gmail.com>
Date:   Sat, 18 May 2013 22:44:27 +0800

Make chronic a hard dependency

The chronic gem is pure Ruby, works on from 1.8.7 to 2.0.0 and only 39k in
size. No reason not to install it by default.

Diffstat:
M lib/sup/index.rb | 45 ++++++++++++++++++---------------------------
M sup.gemspec | 1 +
2 files changed, 19 insertions(+), 27 deletions(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -4,14 +4,7 @@ require 'xapian'
 require 'set'
 require 'fileutils'
 require 'monitor'
-
-begin
-  require 'chronic'
-  $have_chronic = true
-rescue LoadError => e
-  debug "No 'chronic' gem detected. Install it for date/time query restrictions."
-  $have_chronic = false
-end
+require 'chronic'
 
 if ([Xapian.major_version, Xapian.minor_version, Xapian.revision] <=> [1,2,1]) < 0
 	fail "Xapian version 1.2.1 or higher required"
@@ -388,27 +381,25 @@ EOS
       end
     end
 
-    if $have_chronic
-      lastdate = 2<<32 - 1
-      firstdate = 0
-      subs = subs.gsub(/\b(before|on|in|during|after):(\((.+?)\)\B|(\S+)\b)/) do
-        field, datestr = $1, ($3 || $4)
-        realdate = Chronic.parse datestr, :guess => false, :context => :past
-        if realdate
-          case field
-          when "after"
-            debug "chronic: translated #{field}:#{datestr} to #{realdate.end}"
-            "date:#{realdate.end.to_i}..#{lastdate}"
-          when "before"
-            debug "chronic: translated #{field}:#{datestr} to #{realdate.begin}"
-            "date:#{firstdate}..#{realdate.end.to_i}"
-          else
-            debug "chronic: translated #{field}:#{datestr} to #{realdate}"
-            "date:#{realdate.begin.to_i}..#{realdate.end.to_i}"
-          end
+    lastdate = 2<<32 - 1
+    firstdate = 0
+    subs = subs.gsub(/\b(before|on|in|during|after):(\((.+?)\)\B|(\S+)\b)/) do
+      field, datestr = $1, ($3 || $4)
+      realdate = Chronic.parse datestr, :guess => false, :context => :past
+      if realdate
+        case field
+        when "after"
+          debug "chronic: translated #{field}:#{datestr} to #{realdate.end}"
+          "date:#{realdate.end.to_i}..#{lastdate}"
+        when "before"
+          debug "chronic: translated #{field}:#{datestr} to #{realdate.begin}"
+          "date:#{firstdate}..#{realdate.end.to_i}"
         else
-          raise ParseError, "can't understand date #{datestr.inspect}"
+          debug "chronic: translated #{field}:#{datestr} to #{realdate}"
+          "date:#{realdate.begin.to_i}..#{realdate.end.to_i}"
         end
+      else
+        raise ParseError, "can't understand date #{datestr.inspect}"
       end
     end
 
diff --git a/sup.gemspec b/sup.gemspec
@@ -44,6 +44,7 @@ DESC
     s.add_dependency "lockfile"
     s.add_dependency "mime-types", "~> 1"
     s.add_dependency "gettext"
+    s.add_dependency "chronic", "~> 0.9", ">= 0.9.1"
 
     s.add_development_dependency "bundler", "~> 1.3"
     s.add_development_dependency "rake"