lib/simctl/command/create.rb in simctl-0.1.0 vs lib/simctl/command/create.rb in simctl-0.2.0

- old
+ new

@@ -4,15 +4,34 @@ COMMAND = %w[xcrun simctl create] # Creates a device # # @param name [String] name of the new device - # @param device_type [SimCtl::DeviceTYpe] device type of the new device + # @param device_type [SimCtl::DeviceType] device type of the new device # @param runtime [SimCtl::Runtime] runtime of the new device + # @return [SimCtl::Device] the device that was created def create_device(name, device_type, runtime) Executor.execute([COMMAND, "'#{name}'", device_type.identifier, runtime.identifier]) do |identifier| device(udid: identifier) end + end + + # Shutdown, delete and create a device + # + # @param name [String] name of the new device + # @param device_type [SimCtl::DeviceType] device type of the new device + # @param runtime [SimCtl::Runtime] runtime of the new device + # @return [SimCtl::Device] the device that was created + # @yield [exception] an exception that might happen during shutdown/delete of the old device + def reset_device(name, device_type, runtime) + begin + device = device(name: name, os: runtime.name) + device.shutdown! if device.state != 'Shutdown' + device.delete! + rescue Exception => exception + yield exception if block_given? + end + create_device name, device_type, runtime end end end end