]> git.cworth.org Git - sup/commitdiff
wrote Mode#save_to_file as a utility method, moved attachment saving code there,
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 8 Jan 2007 18:26:43 +0000 (18:26 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 8 Jan 2007 18:26:43 +0000 (18:26 +0000)
and added log-mode save to disk

git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@225 5c8cc53c-5e98-4d25-b20a-d8db53a31250

lib/sup/mode.rb
lib/sup/modes/log-mode.rb
lib/sup/modes/thread-view-mode.rb

index 91bdbe6c059d7791b28832d825fd269809caa600..88227e9c4a69bd1686aaccaf7410f21b5e50225e 100644 (file)
@@ -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
index de16b5e6635b988fa90329b7d66ef046d3793372..0a386d54b76b56eab3bb852ea5a343200bbd8225 100644 (file)
@@ -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
index e791e6bc5c3b07bb8b1f8687c0a4984d5e74162e..da1bc7b994393187fb2aa294a1f7b28c3d7a2b7c 100644 (file)
@@ -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