Sha256: dbc26c326b82e2b9833237d57ec41998b2e22581c6f1bb24fd312e271ec9dc82
Contents?: true
Size: 992 Bytes
Versions: 2
Compression:
Stored size: 992 Bytes
Contents
module Imap; end module Imap::Backup # Updates the flags on backed-up emails class FlagRefresher # The number of messages to process at a time CHUNK_SIZE = 100 def initialize(folder, serializer) @folder = folder @serializer = serializer end # Runs the update # @return [void] def run uids = serializer.uids.clone uids.each_slice(CHUNK_SIZE) do |block| refresh_block block end end private attr_reader :folder attr_reader :serializer def refresh_block(uids) uids_and_flags = folder.fetch_multi(uids, ["FLAGS"]) if !uids_and_flags Logger.logger.debug( "[#{folder.name}] failed to fetch flags for #{uids} - " \ "cannot refresh flags" ) return end uids_and_flags.each do |uid_and_flags| uid = uid_and_flags[:uid] flags = uid_and_flags[:flags] serializer.update(uid, flags: flags) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
imap-backup-15.0.3.rc1 | lib/imap/backup/flag_refresher.rb |
imap-backup-15.0.2 | lib/imap/backup/flag_refresher.rb |