From: Eric Sherman <hyperbolist@gmail.com>
To: sup-devel <sup-devel@rubyforge.org>
Subject: [sup-devel] [PATCHv4] [issue14] poll updates accumulate while idle
Date: Thu, 14 Jan 2010 10:51:48 -0500 [thread overview]
Message-ID: <1263484192-sup-1782@changeling.local> (raw)
If you were to leave sup running for a long time, this patch would
enable you to get a glance summary of new mail activity since sup was
last touched, by letting the poll update message accumulate its tally
while idle.
This patch depends on [PATCHv2] idle and unidle updates.
---
lib/sup/poll.rb | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb
index f3e1224..e9fba46 100644
--- a/lib/sup/poll.rb
+++ b/lib/sup/poll.rb
@@ -37,6 +37,9 @@ EOS
@polling = false
@poll_sources = nil
@mode = nil
+ @should_clear_running_totals = false
+ clear_running_totals # defines @running_totals
+ UpdateManager.register self
end
def poll_with_sources
@@ -45,8 +48,12 @@ EOS
BufferManager.flash "Polling for new messages..."
num, numi, from_and_subj, from_and_subj_inbox, loaded_labels = @mode.poll
- if num > 0
- BufferManager.flash "Loaded #{num.pluralize 'new message'}, #{numi} to inbox. Labels: #{loaded_labels.map{|l| l.to_s}.join(', ')}"
+ clear_running_totals if @should_clear_running_totals
+ @running_totals[:num] += num
+ @running_totals[:numi] += numi
+ @running_totals[:loaded_labels] += loaded_labels || []
+ if @running_totals[:num] > 0
+ BufferManager.flash "Loaded #{@running_totals[:num].pluralize 'new message'}, #{@running_totals[:numi]} to inbox. Labels: #{@running_totals[:loaded_labels].map{|l| l.to_s}.join(', ')}"
else
BufferManager.flash "No new messages."
end
@@ -183,6 +190,10 @@ EOS
Index.add_message m
UpdateManager.relay self, :added, m
end
+
+ def handle_idle_update sender, idle_since; @should_clear_running_totals = false; end
+ def handle_unidle_update sender, idle_since; @should_clear_running_totals = true; end
+ def clear_running_totals; @running_totals = {:num => 0, :numi => 0, :loaded_labels => Set.new}; end
end
end
--
1.6.6
_______________________________________________
Sup-devel mailing list
Sup-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-devel
reply other threads:[~2010-01-14 15:56 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1263484192-sup-1782@changeling.local \
--to=hyperbolist@gmail.com \
--cc=sup-devel@rubyforge.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox