Class: ZergXcode::Archiver::IdGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/zerg_xcode/file_format/archiver.rb

Overview

Generates archive IDs for objects.

Instance Method Summary collapse

Constructor Details

#initializeIdGenerator

Returns a new instance of IdGenerator.



65
66
67
# File 'lib/zerg_xcode/file_format/archiver.rb', line 65

def initialize
  @assigned_ids = Set.new
end

Instance Method Details

#id_for(object) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/zerg_xcode/file_format/archiver.rb', line 78

def id_for(object)
  if object.archive_id && !@assigned_ids.include?(object.archive_id)
    @assigned_ids << object.archive_id 
    return object.archive_id 
  else
    return new_id
  end
end

#new_idObject



69
70
71
72
73
74
75
76
# File 'lib/zerg_xcode/file_format/archiver.rb', line 69

def new_id
  loop do
    id = (0...24).map { '%02X' % rand(256) }.join
    next if @assigned_ids.include? id
    @assigned_ids << id
    return id
  end
end