---
bin/sup-sync-back | 2 +-
bin/sup-tweak-labels | 6 +++---
lib/sup/ferret_index.rb | 10 ++--------
lib/sup/index.rb | 12 +++++++-----
4 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/bin/sup-sync-back b/bin/sup-sync-back
index 679e03a..8aa2039 100755
--- a/bin/sup-sync-back
+++ b/bin/sup-sync-back
@@ -17,7 +17,7 @@ def die msg
end
def has_any_from_source_with_label? index, source, label
query = { :source_id => source.id, :label => label, :limit => 1 }
- not Enumerable::Enumerator.new(index, :each_docid, query).map.empty?
+ not Enumerable::Enumerator.new(index, :each_id, query).map.empty?
end
opts = Trollop::options do
diff --git a/bin/sup-tweak-labels b/bin/sup-tweak-labels
index 95a3b03..a8115ea 100755
--- a/bin/sup-tweak-labels
+++ b/bin/sup-tweak-labels
@@ -83,14 +83,14 @@ begin
query += ' ' + opts[:query] if opts[:query]
parsed_query = index.parse_query query
- docs = Enumerable::Enumerator.new(index, :each_docid, parsed_query).map
- num_total = docs.size
+ ids = Enumerable::Enumerator.new(index, :each_id, parsed_query).map
+ num_total = ids.size
$stderr.puts "Found #{num_total} documents across #{source_ids.length}
sources. Scanning..."
num_changed = num_scanned = 0
last_info_time = start_time = Time.now
- docs.each do |id|
+ ids.each do |id|
num_scanned += 1
m = index.build_message id
diff --git a/lib/sup/ferret_index.rb b/lib/sup/ferret_index.rb
index 53c19e0..a2c30ab 100644
--- a/lib/sup/ferret_index.rb
+++ b/lib/sup/ferret_index.rb
@@ -301,16 +301,10 @@ class FerretIndex < BaseIndex
contacts.keys.compact
end
- def each_docid query={}
+ def each_id query={}
ferret_query = build_ferret_query query
results = @index_mutex.synchronize { @index.search ferret_query, :limit =>
(query[:limit] || :all) }
- results.hits.map { |hit| yield hit.doc }
- end
-
- def each_message query={}
- each_docid query do |docid|
- yield build_message(docid)
- end
+ results.hits.map { |hit| yield @index[hit.doc][:message_id] }
end
def optimize
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
index be0e870..45382f1 100644
--- a/lib/sup/index.rb
+++ b/lib/sup/index.rb
@@ -177,14 +177,16 @@ EOS
unimplemented
end
- ## Yield each docid matching query
- def each_docid query={}
+ ## Yield each message-id matching query
+ def each_id query={}
unimplemented
end
- ## Yield each messages matching query
- def each_message query={}
- unimplemented
+ ## Yield each message matching query
+ def each_message query={}, &b
+ each_id query do |id|
+ yield build_message(id)
+ end
end
## Implementation-specific optimization step
--
1.6.0.4
_______________________________________________
sup-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/sup-talk