[]
end
@labels = {}
+ @modified = false
labels.each { |t| @labels[t] = true }
self.class.i_am_the_instance self
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
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