lib/sup/maildir.rb in sup-0.0.8 vs lib/sup/maildir.rb in sup-0.1

- old
+ new

@@ -9,24 +9,28 @@ ## pathnames on disk. class Maildir < Source SCAN_INTERVAL = 30 # seconds - def initialize uri, last_date=nil, usual=true, archived=false, id=nil - super + yaml_properties :uri, :cur_offset, :usual, :archived, :id, :labels + def initialize uri, last_date=nil, usual=true, archived=false, id=nil, labels=[] + super uri, last_date, usual, archived, id uri = URI(uri) raise ArgumentError, "not a maildir URI" unless uri.scheme == "maildir" raise ArgumentError, "maildir URI cannot have a host: #{uri.host}" if uri.host @dir = uri.path + @labels = (labels || []).freeze @ids = [] @ids_to_fns = {} @last_scan = nil @mutex = Mutex.new end + def self.suggest_labels_for path; [] end + def check scan_mailbox start = @ids.index(cur_offset || start_offset) or raise OutOfSyncSourceError, "Unknown message id #{cur_offset || start_offset}." # couldn't find the most recent email end @@ -87,11 +91,11 @@ start = @ids.index(cur_offset || start_offset) or raise OutOfSyncSourceError, "Unknown message id #{cur_offset || start_offset}." # couldn't find the most recent email start.upto(@ids.length - 1) do |i| id = @ids[i] self.cur_offset = id - yield id, (@ids_to_fns[id] =~ /,.*R.*$/ ? [] : [:unread]) + yield id, @labels + (@ids_to_fns[id] =~ /,.*R.*$/ ? [] : [:unread]) end end def start_offset scan_mailbox @@ -119,9 +123,7 @@ rescue SystemCallError, IOError => e raise FatalSourceError, "Problem reading file for id #{id.inspect}: #{fn.inspect}: #{e.message}." end end end - -Redwood::register_yaml(Maildir, %w(uri cur_offset usual archived id)) end