class XCJobs::Test

Attributes

without_building[RW]

Public Class Methods

new(name = :test) { |self| ... } click to toggle source
Calls superclass method XCJobs::Xcodebuild::new
# File lib/xcjobs/xcodebuild.rb, line 178
def initialize(name = :test)
  super
  @description ||= 'test application'
  @without_building = false
  yield self if block_given?
  define
end

Public Instance Methods

sdk() click to toggle source
# File lib/xcjobs/xcodebuild.rb, line 186
def sdk
  @sdk || 'iphonesimulator'
end

Private Instance Methods

build_settings(options) click to toggle source
# File lib/xcjobs/xcodebuild.rb, line 192
def build_settings(options)
  out, status = Open3.capture2(*(['xcodebuild', 'test'] + options + ['-showBuildSettings']))

  settings, target = {}, nil
  out.lines.each do |line|
    case line
    when /Build settings for action test and target (.+):/
      target = $1
      settings[target] = {}
    else
      key, value = line.split(/\=/).collect(&:strip)
      settings[target][key] = value if target
    end
  end
  return settings
end
command() click to toggle source
# File lib/xcjobs/xcodebuild.rb, line 221
def command
  'test'
end
define() click to toggle source
# File lib/xcjobs/xcodebuild.rb, line 209
def define
  raise 'test action requires specifying a scheme' unless scheme
  raise 'cannot specify both a scheme and targets' if scheme && target

  desc @description
  task @name do
    add_build_setting('GCC_SYMBOLS_PRIVATE_EXTERN', 'NO')

    run(['xcodebuild', command] + options)
  end
end