Class: Redwood::ResumeMode

Inherits:
EditMessageMode show all
Defined in:
lib/sup/modes/resume_mode.rb

Constant Summary

Constants inherited from EditMessageMode

EditMessageMode::DECORATION_LINES, EditMessageMode::FORCE_HEADERS, EditMessageMode::MULTI_HEADERS, EditMessageMode::NON_EDITABLE_HEADERS

Instance Attribute Summary

Attributes inherited from EditMessageMode

#body, #header, #status

Attributes inherited from LineCursorMode

#curpos

Attributes inherited from ScrollMode

#botline, #leftcol, #status, #topline

Attributes inherited from Mode

#buffer

Instance Method Summary collapse

Methods inherited from EditMessageMode

#[], #alternate_edit_message, #attach_file, #default_edit_message, #delete_attachment, #edit_cc, #edit_message, #edit_message_async, #edit_message_async_resume, #edit_message_or_field, #edit_subject, #edit_to, #handle_new_text, #lines, #save_message_to_file, #set_sig_edit_flag

Methods inherited from LineCursorMode

#cleanup, #draw

Methods inherited from ScrollMode

#at_bottom?, #at_top?, #cancel_search!, #col_jump, #col_left, #col_right, #continue_search_in_buffer, #draw, #ensure_mode_validity, #half_page_down, #half_page_up, #in_search?, #jump_to_col, #jump_to_end, #jump_to_left, #jump_to_line, #jump_to_start, #line_down, #line_up, #page_down, #page_up, #resize, #rightcol, #search_goto_line, #search_goto_pos, #search_in_buffer, #search_start_line

Methods inherited from Mode

#blur, #cancel_search!, #cleanup, #draw, #focus, #handle_input, #help_text, #in_search?, keymap, keymaps, load_all_modes, make_name, #name, #pipe_to_process, register_keymap, #resize, #resolve_input, #save_to_file, #status

Constructor Details

#initialize(m) ⇒ ResumeMode

Returns a new instance of ResumeMode.



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/sup/modes/resume_mode.rb', line 4

def initialize m
  @m = m
  @safe = false

  header, body = parse_file m.draft_filename
  header.delete "Date"

  super :header => header, :body => body, :have_signature => true
rescue Errno::ENOENT
  DraftManager.discard @m
  BufferManager.flash "Draft deleted outside of sup."
end

Instance Method Details

#killable?Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/sup/modes/resume_mode.rb', line 19

def killable?
  return true if @safe

  case BufferManager.ask_yes_or_no "Discard draft?"
  when true
    DraftManager.discard @m
    BufferManager.flash "Draft discarded."
    true
  when false
    if edited?
      DraftManager.write_draft { |f| write_message f, false }
      DraftManager.discard @m
      BufferManager.flash "Draft saved."
    end
    true
  else
    false
  end
end

#save_as_draftObject



46
47
48
49
# File 'lib/sup/modes/resume_mode.rb', line 46

def save_as_draft
  @safe = true
  DraftManager.discard @m if super
end

#send_messageObject



39
40
41
42
43
44
# File 'lib/sup/modes/resume_mode.rb', line 39

def send_message
  if super
    DraftManager.discard @m
    @safe = true
  end
end

#unsaved?Boolean

Returns:

  • (Boolean)


17
# File 'lib/sup/modes/resume_mode.rb', line 17

def unsaved?; !@safe end