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