Sha256: 35f79b81d1511eae1d51e32209eae8f05cfd6ab16a8f42b6e3ab009a2399a0ed
Contents?: true
Size: 802 Bytes
Versions: 8
Compression:
Stored size: 802 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"]) 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
8 entries across 8 versions & 1 rubygems