]> git.cworth.org Git - sup/blob - lib/sup/modes/resume-mode.rb
Merge branch 'master' into next
[sup] / lib / sup / modes / resume-mode.rb
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   end
13
14   def killable?
15     return true if @safe
16
17     case BufferManager.ask_yes_or_no "Discard draft?"
18     when true
19       DraftManager.discard @m
20       BufferManager.flash "Draft discarded."
21       true
22     when false
23       if edited?
24         DraftManager.write_draft { |f| write_message f, false }
25         DraftManager.discard @m
26         BufferManager.flash "Draft saved."
27       end
28       true
29     else
30       false
31     end
32   end
33
34   def send_message
35     if super
36       DraftManager.discard @m 
37       @safe = true
38     end
39   end
40
41   def save_as_draft
42     @safe = true
43     DraftManager.discard @m if super
44   end
45 end
46
47 end