lib/fastlane/plugin/simctl/helper/simctl_helper.rb in fastlane-plugin-simctl-0.1.0 vs lib/fastlane/plugin/simctl/helper/simctl_helper.rb in fastlane-plugin-simctl-0.2.0
- old
+ new
@@ -1,33 +1,36 @@
module Fastlane
module Helper
class SimctlHelper
- def self.execute_with_simulator_ready(block, runtime, type)
- device = create_device(runtime, type)
+ def self.execute_with_simulator_ready(action, block, runtime, type, name)
+ device = create_device(runtime, type, name)
device.launch
device.wait(90) do |d|
Fastlane::UI.message("Waiting for simulator `#{d.name}` to be ready")
d.state == :booted && d.ready?
end
begin
- block.call(device)
+ block.call(action.other_action, device)
rescue StandardError => error
throw error
ensure
delete_device(device)
end
end
- def self.create_device(runtime, type)
+ def self.create_device(runtime, type, name)
runtime = if runtime.eql? 'latest'
SimCtl::Runtime.latest('ios')
else
SimCtl.runtime(name: runtime)
end
device_type = SimCtl.devicetype(name: type)
- device_name = type.to_s
- device_name += "-#{ENV['JOB_NAME']}" if ENV['JOB_NAME']
- device_name += "@#{ENV['BUILD_NUMBER']}" if ENV['BUILD_NUMBER']
+ device_name = name
+ device_name ||= type.to_s.instance_eval do |obj|
+ obj += "-#{ENV['JOB_NAME']}" if ENV['JOB_NAME']
+ obj += "@#{ENV['BUILD_NUMBER']}" if ENV['BUILD_NUMBER']
+ obj
+ end
Fastlane::UI.message("Starting simulator with runtime: `#{runtime.name}`, device type: `#{device_type.name}`"\
" and device name: `#{device_name}`")
SimCtl.reset_device(device_name, device_type, runtime)
end