]> git.cworth.org Git - sup/commitdiff
Merge branch 'xapian-updates' into next
authorWilliam Morgan <wmorgan-sup@masanjin.net>
Mon, 24 Aug 2009 23:21:22 +0000 (19:21 -0400)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Mon, 24 Aug 2009 23:21:22 +0000 (19:21 -0400)
1  2 
lib/sup/message.rb
lib/sup/xapian_index.rb

Simple merge
index 85f6ef09d3179ac6dd73672b27544c38e20ad28c,7e65a704d7fbe6764114b32980115a87207fb255..c2607283fd20e61a37be94b39fc84d5ec88cf2ee
@@@ -71,31 -71,19 +71,23 @@@ class XapianIndex < BaseInde
      source = SourceManager[entry[:source_id]]
      raise "invalid source #{entry[:source_id]}" unless source
  
-     mk_addrs = lambda { |l| l.map { |e,n| "#{n} <#{e}>" } * ', ' }
-     mk_refs = lambda { |l| l.map { |r| "<#{r}>" } * ' ' }
-     fake_header = {
-       'message-id' => entry[:message_id],
-       'date' => Time.at(entry[:date]),
-       'subject' => entry[:subject],
-       'from' => mk_addrs[[entry[:from]]],
-       'to' => mk_addrs[entry[:to]],
-       'cc' => mk_addrs[entry[:cc]],
-       'bcc' => mk_addrs[entry[:bcc]],
-       'reply-tos' => mk_refs[entry[:replytos]],
-       'references' => mk_refs[entry[:refs]],
-      }
-       m = Message.new :source => source, :source_info => entry[:source_info],
-                   :labels => entry[:labels],
-                   :snippet => entry[:snippet]
-       m.parse_header fake_header
-       m
+     m = Message.new :source => source, :source_info => entry[:source_info],
+                     :labels => entry[:labels], :snippet => entry[:snippet]
+     mk_person = lambda { |x| Person.new(*x.reverse!) }
+     entry[:from] = mk_person[entry[:from]]
+     entry[:to].map!(&mk_person)
+     entry[:cc].map!(&mk_person)
+     entry[:bcc].map!(&mk_person)
+     m.load_from_index! entry
+     m
    end
  
 +  def add_message m; sync_message m end
 +  def update_message m; sync_message m end
 +  def update_message_state m; sync_message m end
 +
    def sync_message m, opts={}
      entry = synchronize { get_entry m.id }
      snippet = m.snippet