sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/

lib/sup/modes/resume_mode.rb (992B) - raw

      1 module Redwood
      2 
      3 class ResumeMode < EditMessageMode
      4   def initialize m
      5     @m = m
      6     @safe = false
      7 
      8     header, body = parse_file m.draft_filename
      9     header.delete "Date"
     10 
     11     super :header => header, :body => body, :have_signature => true
     12   rescue Errno::ENOENT
     13     DraftManager.discard @m
     14     BufferManager.flash "Draft deleted outside of sup."
     15   end
     16 
     17   def unsaved?; !@safe end
     18 
     19   def killable?
     20     return true if @safe
     21 
     22     case BufferManager.ask_yes_or_no "Discard draft?"
     23     when true
     24       DraftManager.discard @m
     25       BufferManager.flash "Draft discarded."
     26       true
     27     when false
     28       if edited?
     29         DraftManager.write_draft { |f| write_message f, false }
     30         DraftManager.discard @m
     31         BufferManager.flash "Draft saved."
     32       end
     33       true
     34     else
     35       false
     36     end
     37   end
     38 
     39   def send_message
     40     if super
     41       DraftManager.discard @m
     42       @safe = true
     43     end
     44   end
     45 
     46   def save_as_draft
     47     @safe = true
     48     DraftManager.discard @m if super
     49   end
     50 end
     51 
     52 end