Class: Fourflusher::SimControl
- Inherits:
-
Object
- Object
- Fourflusher::SimControl
show all
- Extended by:
- Executable
- Defined in:
- lib/fourflusher/find.rb,
lib/fourflusher/simctl.rb,
lib/fourflusher/xcodebuild.rb
Overview
Executes ‘simctl` commands
Instance Method Summary
collapse
Methods included from Executable
capture_command, executable, execute_command, which
Instance Method Details
#destination(filter, os = :ios, minimum_version = '1.0') ⇒ Object
6
7
8
9
10
11
|
# File 'lib/fourflusher/xcodebuild.rb', line 6
def destination(filter, os = :ios, minimum_version = '1.0')
sim = simulator(filter, os, minimum_version)
filter = "for #{os} #{minimum_version}" if filter == :oldest
fail "Simulator #{filter} is not available." if sim.nil?
['-destination', "id=#{sim.id}"]
end
|
#list(args) ⇒ Object
9
10
11
|
# File 'lib/fourflusher/simctl.rb', line 9
def list(args)
simctl!(['list'] + args)
end
|
#simulator(filter, os_name = :ios, minimum_version = '1.0') ⇒ Object
96
97
98
|
# File 'lib/fourflusher/find.rb', line 96
def simulator(filter, os_name = :ios, minimum_version = '1.0')
usable_simulators(filter, os_name, minimum_version).first
end
|
#usable_simulators(filter = nil, os = :ios, minimum_version = '1.0') ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
# File 'lib/fourflusher/find.rb', line 100
def usable_simulators(filter = nil, os = :ios, minimum_version = '1.0')
sims = fetch_sims
oses = sims.map(&:os_name).uniq
os = os.downcase.to_sym
unless oses.include?(os)
fail "Could not find a `#{os}` simulator (valid values: #{oses.join(', ')}). Ensure that "\
"Xcode -> Window -> Devices has at least one `#{os}` simulator listed or otherwise add one."
end
return sims if filter.nil?
minimum_version = Gem::Version.new(minimum_version)
sims = sims.select { |sim| sim.os_name == os && sim.compatible?(minimum_version) }
return [sims.min_by(&:os_version)] if filter == :oldest
found_sims = sims.select { |sim| sim.name == filter }
return found_sims if found_sims.count > 0
sims.select { |sim| sim.name.start_with?(filter) }
end
|