class RXCode::Project

Constants

XCODE_PROJECT_EXTENSION
PROJECT DISCOVERY & LOOKUP =================================================================================

Attributes

path[R]
PROJECT PATH ===============================================================================================
workspace[R]
WORKSPACE ==================================================================================================

Public Class Methods

is_project_at_path?(project_path) click to toggle source

Determines if the provided file path is an XCode project

# File lib/rxcode/models/project.rb, line 28
def self.is_project_at_path?(project_path)
  File.directory?(project_path) && File.extname(project_path) == XCODE_PROJECT_EXTENSION
end
new(path, options = nil) click to toggle source
Calls superclass method RXCode::Model::new
# File lib/rxcode/models/project.rb, line 5
def initialize(path, options = nil)
  raise "#{path.inspect} is not a valid XCode project path" unless self.class.is_project_at_path?(path)
  
  super nil
  
  @path = path
  
  if options && options[:workspace]
    @workspace = options[:workspace]
  end
end

Public Instance Methods

archive() click to toggle source
# File lib/rxcode/models/project.rb, line 40
def archive
  @archive ||=
    begin
      a = Archive.new(project_archive_path) { |archived_object| Model.map_archived_object(archived_object) }
      a.root_object.model_object = self
      a
    end
end
archive_object() click to toggle source
# File lib/rxcode/models/project.rb, line 49
def archive_object
  archive.root_object
end
build_configuration_list() click to toggle source
BUILD CONFIGURATIONS =======================================================================================
# File lib/rxcode/models/project.rb, line 65
def build_configuration_list
  archive_object.model_object_for_key('buildConfigurationList')
end
project_archive_path() click to toggle source
# File lib/rxcode/models/project.rb, line 36
def project_archive_path
  File.join(self.path, 'project.pbxproj')
end
target_names() click to toggle source
# File lib/rxcode/models/project.rb, line 59
def target_names
  targets.map(&:name)
end
targets() click to toggle source
TARGETS ====================================================================================================
# File lib/rxcode/models/project.rb, line 55
def targets
  archive_object.array_of_model_objects_for_key('targets')
end