commit c0d67ca3447a10fbad9977da1b76592f150ab1c2
parent 8258760c40ce9697f2e16634702d45a88ffab62d
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Mon, 9 Jul 2007 00:20:14 +0000
labelmanager bugfix (deletion) and now only saves if modified
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@489 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/lib/sup/label.rb b/lib/sup/label.rb
@@ -22,6 +22,7 @@ class LabelManager
[]
end
@labels = {}
+ @modified = false
labels.each { |t| @labels[t] = true }
self.class.i_am_the_instance self
@@ -40,9 +41,21 @@ class LabelManager
string.downcase.intern
end
- def << t; @labels[t] = true unless @labels.member?(t) || RESERVED_LABELS.member?(t); end
- def delete t; @labels.delete t; end
+ def << t
+ unless @labels.member?(t) || RESERVED_LABELS.member?(t)
+ @labels[t] = true
+ @modified = true
+ end
+ end
+
+ def delete t
+ if @labels.delete t
+ @modified = true
+ end
+ end
+
def save
+ return unless @modified
File.open(@fn, "w") { |f| f.puts @labels.keys }
end
end
diff --git a/lib/sup/modes/label-list-mode.rb b/lib/sup/modes/label-list-mode.rb
@@ -44,7 +44,7 @@ protected
counts.map do |label, string, total, unread|
if total == 0 && !LabelManager::RESERVED_LABELS.include?(label)
Redwood::log "no hits for label #{label}, deleting"
- LabelManager.delete t
+ LabelManager.delete label
next
end