NON_EDITABLE_HEADERS = %w(Message-Id Date)
attr_reader :status
+ bool_reader :edited
register_keymap do |k|
k.add :send_message, "Send message", 'y'
end
def killable?
- !@edited || BufferManager.ask_yes_or_no("Discard message?")
+ !edited? || BufferManager.ask_yes_or_no("Discard message?")
end
protected
end
def send_message
- return false unless @edited || BufferManager.ask_yes_or_no("Message unedited. Really send?")
+ return unless edited? || BufferManager.ask_yes_or_no("Message unedited. Really send?")
raise "no message id!" unless header["Message-Id"]
date = Time.now
BufferManager.kill_buffer buffer
BufferManager.flash "Message sent!"
- true
end
def save_as_draft
DraftManager.write_draft { |f| write_message f, false }
BufferManager.kill_buffer buffer
BufferManager.flash "Saved for later editing."
- true
end
def sig_lines
end
def killable?
- unless @safe
- case BufferManager.ask_yes_or_no "Discard draft?"
- when true
+ return true if @safe
+
+ case BufferManager.ask_yes_or_no "Discard draft?"
+ when true
+ DraftManager.discard @id
+ BufferManager.flash "Draft discarded."
+ true
+ when false
+ if edited?
+ DraftManager.write_draft { |f| write_message f, false }
DraftManager.discard @id
- BufferManager.flash "Draft discarded."
- true
- when false
BufferManager.flash "Draft saved."
- true
- else
- false
end
+ true
+ else
+ false
end
end