Sha256: 0cfabb3cadab0cf78d30d67a91c6772a2cfe798cc963c0ad4d45739e7175299e
Contents?: true
Size: 1.02 KB
Versions: 10
Compression:
Stored size: 1.02 KB
Contents
require "imap/backup/logger" module Imap; end module Imap::Backup # Copies a folder of backed-up emails to an online folder class Migrator def initialize(serializer, folder, reset: false) @folder = folder @reset = reset @serializer = serializer end # Runs the migration # @return [void] def run count = serializer.uids.count folder.create folder.clear if reset Logger.logger.debug "[#{folder.name}] #{count} to migrate" serializer.each_message(serializer.uids).with_index do |message, i| next if message.nil? log_prefix = "[#{folder.name}] uid: #{message.uid} (#{i + 1}/#{count}) -" Logger.logger.debug( "#{log_prefix} #{message.body.size} bytes" ) begin folder.append(message) rescue StandardError => e Logger.logger.warn "#{log_prefix} append error: #{e}" end end end private attr_reader :folder attr_reader :reset attr_reader :serializer end end
Version data entries
10 entries across 10 versions & 1 rubygems