Class: ZergXcode::Archiver::IdGenerator
- Inherits:
-
Object
- Object
- ZergXcode::Archiver::IdGenerator
- Defined in:
- lib/zerg_xcode/file_format/archiver.rb
Overview
Generates archive IDs for objects.
Instance Method Summary collapse
- #id_for(object) ⇒ Object
-
#initialize ⇒ IdGenerator
constructor
A new instance of IdGenerator.
- #new_id ⇒ Object
Constructor Details
#initialize ⇒ IdGenerator
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_id ⇒ Object
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 |