commit 76d090cf4af007a8047b932374ee264b6e978951
parent ba4d09453a4895ed5744fc1a1a11e29bf12aff13
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Mon, 8 Jan 2007 18:26:43 +0000
wrote Mode#save_to_file as a utility method, moved attachment saving code there,
and added log-mode save to disk
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@225 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
3 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/lib/sup/mode.rb b/lib/sup/mode.rb
@@ -75,6 +75,19 @@ EOS
s
end.compact.join "\n"
end
+
+ ## helper function
+ def save_to_file fn
+ if File.exists? fn
+ return unless BufferManager.ask_yes_or_no "File exists. Overwrite?"
+ end
+ begin
+ File.open(fn, "w") { |f| yield f }
+ BufferManager.flash "Successfully wrote #{fn}."
+ rescue SystemCallError => e
+ BufferManager.flash "Error writing to file: #{e.message}"
+ end
+ end
end
end
diff --git a/lib/sup/modes/log-mode.rb b/lib/sup/modes/log-mode.rb
@@ -3,6 +3,7 @@ module Redwood
class LogMode < TextMode
register_keymap do |k|
k.add :toggle_follow, "Toggle follow mode", 'f'
+ k.add :save_to_disk, "Save log to disk", 's'
end
def initialize
@@ -36,6 +37,11 @@ class LogMode < TextMode
end
end
+ def save_to_disk
+ fn = BufferManager.ask :filename, "Save log to file: "
+ save_to_file(fn) { |f| f.puts text } if fn
+ end
+
def status
super + " (follow: #@follow)"
end
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -107,29 +107,16 @@ class ThreadViewMode < LineCursorMode
update
end
- def save fn
- if File.exists? fn
- return unless BufferManager.ask_yes_or_no "File exists. Overwrite?"
- end
- begin
- File.open(fn, "w") { |f| yield f }
- BufferManager.flash "Successfully wrote #{fn}."
- rescue SystemCallError => e
- BufferManager.flash "Error writing to file: #{e.message}"
- end
- end
- private :save
-
def save_to_disk
return unless(chunk = @chunk_lines[curpos])
case chunk
when Message::Attachment
- fn = BufferManager.ask :filename, "save attachment to file: ", chunk.filename
- save(fn) { |f| f.print chunk } if fn
+ fn = BufferManager.ask :filename, "Save attachment to file: ", chunk.filename
+ save_to_file(fn) { |f| f.print chunk } if fn
else
m = @message_lines[curpos]
- fn = BufferManager.ask :filename, "save message to file: "
- save(fn) { |f| f.print m.raw_full_message } if fn
+ fn = BufferManager.ask :filename, "Save message to file: "
+ save_to_file(fn) { |f| f.print m.raw_full_message } if fn
end
end