Sha256: ed06887974d51045295a564963944b47e708d57a4b34d699169b85498f7a6b43

Contents?: true

Size: 756 Bytes

Versions: 6

Compression:

Stored size: 756 Bytes

Contents

require "imap/backup/serializer"

module Imap; end

module Imap::Backup
  class Serializer; end

  # Finds a name that can be used to rename a serialized folder
  class Serializer::UnusedNameFinder
    # @param serializer [Serializer] a folder serializer
    def initialize(serializer:)
      @serializer = serializer
    end

    # Finds the name
    # @return [String] the name
    def run
      digit = 0
      folder = nil

      loop do
        extra = digit.zero? ? "" : "-#{digit}"
        folder = "#{serializer.folder}-#{serializer.uid_validity}#{extra}"
        test = Serializer.new(serializer.path, folder)
        break if !test.validate!

        digit += 1
      end

      folder
    end

    private

    attr_reader :serializer
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
imap-backup-15.0.3.rc1 lib/imap/backup/serializer/unused_name_finder.rb
imap-backup-15.0.2 lib/imap/backup/serializer/unused_name_finder.rb
imap-backup-15.0.1 lib/imap/backup/serializer/unused_name_finder.rb
imap-backup-15.0.0 lib/imap/backup/serializer/unused_name_finder.rb
imap-backup-14.6.1 lib/imap/backup/serializer/unused_name_finder.rb
imap-backup-14.6.0 lib/imap/backup/serializer/unused_name_finder.rb