Class: Xcodeproj::Project::UUIDGenerator
- Inherits:
-
Object
- Object
- Xcodeproj::Project::UUIDGenerator
- Defined in:
- lib/xcodeproj/project/uuid_generator.rb
Instance Method Summary collapse
- #generate! ⇒ Object
-
#initialize(projects) ⇒ UUIDGenerator
constructor
A new instance of UUIDGenerator.
Constructor Details
#initialize(projects) ⇒ UUIDGenerator
Returns a new instance of UUIDGenerator.
6 7 8 9 |
# File 'lib/xcodeproj/project/uuid_generator.rb', line 6 def initialize(projects) @projects = Array(projects) @paths_by_object = {} end |
Instance Method Details
#generate! ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/xcodeproj/project/uuid_generator.rb', line 11 def generate! generate_all_paths_by_objects(@projects) new_objects_by_project = Hash[@projects.map do |project| [project, switch_uuids(project)] end] all_new_objects_by_project = new_objects_by_project.values.flat_map(&:values) all_objects_by_uuid = @projects.map(&:objects_by_uuid).inject(:merge) all_objects = @projects.flat_map(&:objects) verify_no_duplicates!(all_objects, all_new_objects_by_project) @projects.each { |project| fixup_uuid_references(project, all_objects_by_uuid) } new_objects_by_project.each do |project, new_objects_by_uuid| project.instance_variable_set(:@generated_uuids, project.instance_variable_get(:@available_uuids)) project.instance_variable_set(:@objects_by_uuid, new_objects_by_uuid) end end |