Module: Xcode

Defined in:
lib/xcoder.rb,
lib/xcode/group.rb,
lib/xcode/scheme.rb,
lib/xcode/target.rb,
lib/xcode/project.rb,
lib/xcode/version.rb,
lib/xcode/keychain.rb,
lib/xcode/platform.rb,
lib/xcode/registry.rb,
lib/xcode/resource.rb,
lib/xcode/buildspec.rb,
lib/xcode/deploy/s3.rb,
lib/xcode/workspace.rb,
lib/xcode/build_file.rb,
lib/xcode/deploy/ftp.rb,
lib/xcode/deploy/ssh.rb,
lib/xcode/info_plist.rb,
lib/xcoder/rake_task.rb,
lib/xcode/build_phase.rb,
lib/xcode/test/report.rb,
lib/xcode/configuration.rb,
lib/xcode/shell/command.rb,
lib/xcode/variant_group.rb,
lib/xcode/file_reference.rb,
lib/xcode/terminal_output.rb,
lib/xcode/deploy/kickfolio.rb,
lib/xcode/deploy/testflight.rb,
lib/xcode/deploy/web_assets.rb,
lib/xcode/project_reference.rb,
lib/xcode/target_dependency.rb,
lib/xcode/configuration_list.rb,
lib/xcode/configuration_owner.rb,
lib/xcode/builder/base_builder.rb,
lib/xcode/builder/build_parser.rb,
lib/xcode/container_item_proxy.rb,
lib/xcode/provisioning_profile.rb,
lib/xcode/builder/scheme_builder.rb,
lib/xcode/test/parsers/kif_parser.rb,
lib/xcode/test/report/test_result.rb,
lib/xcode/test/report/suite_result.rb,
lib/xcode/test/parsers/ocunit_parser.rb,
lib/xcode/configurations/array_property.rb,
lib/xcode/parsers/plutil_project_parser.rb,
lib/xcode/configurations/string_property.rb,
lib/xcode/configurations/boolean_property.rb,
lib/xcode/test/formatters/junit_formatter.rb,
lib/xcode/test/formatters/stdout_formatter.rb,
lib/xcode/configurations/enumeration_property.rb,
lib/xcode/builder/project_target_config_builder.rb,
lib/xcode/configurations/key_value_array_property.rb,
lib/xcode/configurations/space_delimited_string_property.rb,
lib/xcode/configurations/targeted_device_family_property.rb

Defined Under Namespace

Modules: BuildFile, BuildPhase, Builder, Configuration, ConfigurationList, ConfigurationOwner, ContainerItemProxy, Deploy, FileReference, Group, Keychains, PLUTILProjectParser, Platforms, ProjectReference, Registry, Shell, Target, TargetDependency, TerminalOutput, Test, VariantGroup Classes: Buildspec, EnumerationProperty, InfoPlist, Keychain, Platform, Project, ProvisioningProfile, RakeTask, Resource, Scheme, SchemeAction, Workspace

Constant Summary collapse

VERSION =
"0.1.18"
@@projects =
nil
@@workspaces =
nil
@@sdks =
nil

Class Method Summary collapse

Class Method Details

.available_sdksArray<String>

Available SDKs available on this particular system.

Returns:

  • (Array<String>)

    the available SDKs on the current system.



110
111
112
113
# File 'lib/xcoder.rb', line 110

def self.available_sdks
  parse_sdks if @@sdks.nil?
  @@sdks
end

.find_projects(dir = '.') ⇒ Array<Project>

Returns the projects found at the specified directory.

Parameters:

  • dir (String) (defaults to: '.')

    the path to search for projects; defaults to using the current working directory.

Returns:

  • (Array<Project>)

    the projects found at the specified directory.



92
93
94
# File 'lib/xcoder.rb', line 92

def self.find_projects(dir='.')
  parse_projects(dir)
end

.is_sdk_available?(sdk) ⇒ TrueClass, FalseClass

Returns true if the sdk is available; false otherwise.

Parameters:

  • sdk (String)

    name of the sdk that is being asked to see if available.

Returns:



100
101
102
103
# File 'lib/xcoder.rb', line 100

def self.is_sdk_available?(sdk)
  parse_sdks if @@sdks.nil?
  @@sdks.values.include? sdk
end

.project(name) ⇒ Project

Note:

this method will raise an error when it is unable to find the project specified.

Find the project with the specified name within the current working directory.

Parameters:

  • name (String)

    of the project (e.g. NAME.xcodeproj) that is attempting to be found.

Returns:

  • (Project)

    the project found; an error is raise if a project is unable to be found.



52
53
54
55
56
57
58
59
60
61
# File 'lib/xcoder.rb', line 52

def self.project(name)
  name = name.to_s

  return Xcode::Project.new(name) if name=~/\.xcodeproj/

  self.projects.each do |p|
    return p if p.name == name
  end
  raise "Unable to find a project named #{name}.  However, I did find these projects: #{self.projects.map {|p| p.name}.join(', ') }"
end

.projectsArray<Project>

Find all the projects within the current working directory.

Returns:

  • (Array<Project>)

    an array of the all the Projects found.



25
26
27
28
# File 'lib/xcoder.rb', line 25

def self.projects
  @@projects = parse_projects if @@projects.nil?
  @@projects
end

.workspace(name) ⇒ Project

Note:

this method will raise an error when it is unable to find the workspace specified.

Find the workspace with the specified name within the current working directory.

Parameters:

  • name (String)

    of the workspace (e.g. NAME.xcworkspace) that is attempting to be found.

Returns:

  • (Project)

    the workspace found; an error is raise if a workspace is unable to be found.



75
76
77
78
79
80
81
82
83
84
# File 'lib/xcoder.rb', line 75

def self.workspace(name)
  name = name.to_s

  return Xcode::Workspace.new(name) if name=~/\.xcworkspace/

  self.workspaces.each do |p|
    return p if p.name == name
  end
  raise "Unable to find a workspace named #{name}.  However, I did find these workspaces: #{self.workspaces.map {|p| p.name}.join(', ') }"
end

.workspacesArray<Workspaces>

Find all the workspaces within the current working directory.

Returns:

  • (Array<Workspaces>)

    an array of all the Workspaces found.



35
36
37
38
# File 'lib/xcoder.rb', line 35

def self.workspaces
  @@workspaces = parse_workspaces if @@workspaces.nil?
  @@workspaces
end