class XcodeProject::BuildPhaseNode

Public Class Methods

new(root, uuid, data) click to toggle source
Calls superclass method
# File lib/xcodeproject/build_phase_node.rb, line 30
def initialize(root, uuid, data)
  super(root, uuid, data)
  @files = data['files']
end

Public Instance Methods

add_file(file_obj) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 39
def add_file(file_obj)
  case file_obj
  when PBXFileReference
    add_build_file(file_obj.uuid)
  when PBXBuildFile
    add_build_file_uuid(file_obj.uuid)
  else
    raise ArgumentError, 'Wrong argument type, expected the PBXFileReference or PBXBuildFile.'
  end
end
doctor() click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 61
def doctor
  @files.each do |uuid|
    obj = root.object(uuid)
    if obj.nil?
      remove_build_file_uuid(uuid)
      puts "removed #{uuid}"
    end
  end
end
files() click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 35
def files
  build_files.map(&:file_ref)
end
remove_file(file_obj) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 50
def remove_file(file_obj)
  case file_obj
  when PBXFileReference
    remove_build_file(file_obj.uuid)
  when PBXBuildFile
    remove_build_file_uuid(file_obj.uuid)
  else
    raise ArgumentError, 'Wrong argument type, expected the PBXFileReference or PBXBuildFile.'
  end
end

Private Instance Methods

add_build_file(file_ref_uuid) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 81
def add_build_file(file_ref_uuid)
  obj = build_file(file_ref_uuid)
  if obj.nil?
    obj = PBXBuildFile.add(root, file_ref_uuid)
    add_build_file_uuid(obj.uuid)
  end
  obj
end
add_build_file_uuid(build_file_uuid) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 95
def add_build_file_uuid(build_file_uuid)
  @files << build_file_uuid unless @files.include?(build_file_uuid)
end
build_file(file_ref_uuid) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 77
def build_file(file_ref_uuid)
  build_files.select { |obj| obj.file_ref.uuid == file_ref_uuid }.first
end
build_files() click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 73
def build_files
  @files.map { |uuid| root.object!(uuid) }
end
remove_build_file(file_ref_uuid) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 90
def remove_build_file(file_ref_uuid)
  obj = build_file(file_ref_uuid)
  remove_build_file_uuid(obj.uuid) unless obj.nil?
end
remove_build_file_uuid(build_file_uuid) click to toggle source
# File lib/xcodeproject/build_phase_node.rb, line 99
def remove_build_file_uuid(build_file_uuid)
  @files.delete(build_file_uuid)
end