X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=lib%2Fsup%2Fdraft.rb;h=5ea2935f2180f3cb8a94ac996a50ce97dcc6d1ac;hb=bf30feea5c29d1aa5c1b8bbefa2bf4f4e73b1510;hp=32266b5374eb3d67b336926a28e8fe75eecf30ce;hpb=dc15c15bb8c7336be299606c423f6de111877064;p=sup diff --git a/lib/sup/draft.rb b/lib/sup/draft.rb index 32266b5..5ea2935 100644 --- a/lib/sup/draft.rb +++ b/lib/sup/draft.rb @@ -7,7 +7,6 @@ class DraftManager def initialize dir @dir = dir @source = nil - self.class.i_am_the_instance self end def self.source_name; "sup://drafts"; end @@ -20,25 +19,18 @@ class DraftManager File.open(fn, "w") { |f| yield f } my_message = nil - @source.each do |thisoffset, theselabels| - m = Message.new :source => @source, :source_info => thisoffset, :labels => theselabels - Index.sync_message m - UpdateManager.relay self, :added, m - my_message = m if thisoffset == offset + PollManager.each_message_from(@source) do |m| + PollManager.add_new_message m + my_message = m end my_message end def discard m - docid, entry = Index.load_entry_for_id m.id - unless entry - Redwood::log "can't find entry for draft: #{m.id.inspect}. You probably already discarded it." - return - end - raise ArgumentError, "not a draft: source id #{entry[:source_id].inspect}, should be #{DraftManager.source_id.inspect} for #{m.id.inspect} / docno #{docid}" unless entry[:source_id].to_i == DraftManager.source_id - Index.drop_entry docid - File.delete @source.fn_for_offset(entry[:source_info]) + raise ArgumentError, "not a draft: source id #{m.source.id.inspect}, should be #{DraftManager.source_id.inspect} for #{m.id.inspect}" unless m.source.id.to_i == DraftManager.source_id + Index.delete m.id + File.delete @source.fn_for_offset(m.source_info) UpdateManager.relay self, :single_message_deleted, m end end