## 3. (optional) see whether the source has marked it read or not
##
## In particular, Sup doesn't need to move messages, mark them as
- ## read, delete them, or anything else. (Well, maybe delete at some
- ## point.)
+ ## read, delete them, or anything else. (Well, at some point it will
+ ## need to delete them, but that will be an optional capability.)
##
## On the other hand, Sup assumes that you can assign each message a
## unique integer id, such that newer messages have higher ids than
## capability, e.g. IMAP, then you have to do a little more work to
## simulate it.
##
- ## To write a new source, subclass this class, and should implement:
+ ## To write a new source, subclass this class, and implement:
##
## - start_offset
## - end_offset
+ ## - pct_done (percent of the way cur_offset is to end_offset)
## - load_header offset
## - load_message offset
## - raw_header offset
- ## - raw_full_message offset-
+ ## - raw_full_message offset
## - next (or each, if you prefer)
##
+ ## ... where "offset" really means unique id. (You can tell I
+ ## started with mbox.)
+ ##
## You can throw SourceErrors from any of those, but we don't catch
## anything else, so make sure you catch *all* errors and reraise
## them as SourceErrors, and set broken_msg to something if the
##
## Also, be sure to make the source thread-safe, since it WILL be
## pummeled from multiple threads at once.
+ ##
+ ## Two examples for you to look at, though sadly neither of them is
+ ## as simple as I'd like: mbox/loader.rb and imap.rb
+
+
## dirty? described whether cur_offset has changed, which means the
## source info needs to be re-saved to sources.yaml.