sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 87dcb31f615fe3989aa5a8da9662fd84769fbe75
parent b4ce00d4c6bdf1c73717909a0b9535cc9e785ffc
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date:   Sat, 20 Mar 2010 12:54:52 -0700

ruby 1.9 Enumerator compatibility

Diffstat:
M bin/sup-sync-back | 3 +--
M bin/sup-tweak-labels | 5 ++---
M lib/sup/modes/console-mode.rb | 2 +-
M lib/sup/util.rb | 5 +++++
4 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/bin/sup-sync-back b/bin/sup-sync-back
@@ -4,7 +4,6 @@ require 'rubygems'
 require 'uri'
 require 'tempfile'
 require 'trollop'
-require 'enumerator'
 require "sup"; Redwood::check_library_version_against "git"
 
 ## save a message 'm' to an open file pointer 'fp'
@@ -17,7 +16,7 @@ def die msg
 end
 def has_any_from_source_with_label? index, source, label
   query = { :source_id => source.id, :label => label, :limit => 1, :load_spam => true, :load_deleted => true, :load_killed => true }
-  not Enumerable::Enumerator.new(index, :each_id, query).map.empty?
+  index.num_results_for(query) != 0
 end
 
 opts = Trollop::options do
diff --git a/bin/sup-tweak-labels b/bin/sup-tweak-labels
@@ -2,7 +2,6 @@
 
 require 'rubygems'
 require 'trollop'
-require 'enumerator'
 require "sup"; Redwood::check_library_version_against "git"
 
 class Float
@@ -84,8 +83,8 @@ begin
 
   parsed_query = index.parse_query query
   parsed_query.merge! :load_spam => true, :load_deleted => true, :load_killed => true
-  ids = Enumerable::Enumerator.new(index, :each_id, parsed_query).map
-  num_total = ids.size
+  ids = Enumerator.new(index, :each_id, parsed_query)
+  num_total = index.num_results_for parsed_query
 
   $stderr.puts "Found #{num_total} documents across #{source_ids.length} sources. Scanning..."
 
diff --git a/lib/sup/modes/console-mode.rb b/lib/sup/modes/console-mode.rb
@@ -8,7 +8,7 @@ class Console
   end
 
   def query(query)
-    Enumerable::Enumerator.new(Index, :each_message, Index.parse_query(query))
+    Enumerator.new(Index, :each_message, Index.parse_query(query))
   end
 
   def add_labels(query, *labels)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
@@ -3,6 +3,7 @@ require 'lockfile'
 require 'mime/types'
 require 'pathname'
 require 'set'
+require 'enumerator'
 
 ## time for some monkeypatching!
 class Lockfile
@@ -461,6 +462,10 @@ module Enumerable
   end
 end
 
+unless Object.const_defined? :Enumerator
+  Enumerator = Enumerable::Enumerator
+end
+
 class Array
   def flatten_one_level
     inject([]) { |a, e| a + e }