[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sup-devel] [PATCH 1/4] factor saving out of thread/message classes
---
lib/sup/index.rb | 7 +++++++
lib/sup/message.rb | 5 +----
lib/sup/modes/thread-index-mode.rb | 2 +-
lib/sup/thread.rb | 2 +-
4 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
index ff03f19..5d8d714 100644
--- a/lib/sup/index.rb
+++ b/lib/sup/index.rb
@@ -172,6 +172,13 @@ class BaseIndex
def parse_query s
unimplemented
end
+
+ def save_thread t
+ t.each_dirty_message do |m|
+ update_message_state m
+ m.clear_dirty
+ end
+ end
end
index_name = ENV['SUP_INDEX'] || $config[:index] || DEFAULT_INDEX
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
index f3ac874..76ce330 100644
--- a/lib/sup/message.rb
+++ b/lib/sup/message.rb
@@ -182,11 +182,8 @@ class Message
## don't tempt me.
def sanitize_message_id mid; mid.gsub(/(\s|[^\000-\177])+/, "")[0..254] end
- def save_state index
- return unless @dirty
- index.update_message_state self
+ def clear_dirty
@dirty = false
- true
end
def has_label? t; @labels.member? t; end
diff --git a/lib/sup/modes/thread-index-mode.rb b/lib/sup/modes/thread-index-mode.rb
index 82f258b..c4a7d38 100644
--- a/lib/sup/modes/thread-index-mode.rb
+++ b/lib/sup/modes/thread-index-mode.rb
@@ -477,7 +477,7 @@ EOS
BufferManager.say("Saving threads...") do |say_id|
dirty_threads.each_with_index do |t, i|
BufferManager.say "Saving modified thread #{i + 1} of #{dirty_threads.length}...", say_id
- t.save_state Index
+ Index.save_thread t
end
end
end
diff --git a/lib/sup/thread.rb b/lib/sup/thread.rb
index 2300305..3fdf1f6 100644
--- a/lib/sup/thread.rb
+++ b/lib/sup/thread.rb
@@ -112,7 +112,7 @@ class Thread
def set_labels l; each { |m, *o| m && m.labels = l }; end
def has_label? t; any? { |m, *o| m && m.has_label?(t) }; end
- def save_state index; each { |m, *o| m && m.save_state(index) }; end
+ def each_dirty_message; each { |m, *o| m && m.dirty? && yield(m) }; end
def direct_participants
map { |m, *o| [m.from] + m.to if m }.flatten.compact.uniq
--
1.6.3.3
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel