class Device
Attributes
device_type[R]
name[R]
runtime[R]
udid[R]
Public Class Methods
current_devices(xc:)
click to toggle source
# File lib/peach/device.rb, line 50 def self.current_devices(xc:) devices = Array.new simctl_json = JSON.parse(load_devices) device_list = simctl_json['devices'] device_list.each do |type, ds| runtime = xc.runtime_name(type) ds.each do |d| device_name = d["name"] device_udid = d["udid"] device_type = device_type(udid: device_udid, xc: xc) devices << Device.new(name: device_name, device_type: device_type, runtime: runtime, udid: device_udid, xc: xc) end end devices end
destroy_all(xc:)
click to toggle source
class functions
# File lib/peach/device.rb, line 43 def self.destroy_all(xc:) devices = Device.current_devices(xc: xc) || [] devices.each do |d| d.destroy end end
device_type(udid:, xc:)
click to toggle source
# File lib/peach/device.rb, line 75 def self.device_type(udid:, xc:) device_type_identifier = device_type_identifier(udid: udid, xc: xc) xc.device_name(device_type_identifier) end
device_type_identifier(udid:, xc:)
click to toggle source
# File lib/peach/device.rb, line 70 def self.device_type_identifier(udid:, xc:) plist = Plist.parse_xml("#{ENV['HOME']}/Library/Developer/CoreSimulator/Devices/#{udid}/device.plist") plist['deviceType'] end
load_devices()
click to toggle source
# File lib/peach/device.rb, line 80 def self.load_devices `xcrun simctl list devices -j` end
new(name:, device_type:, runtime:, udid: nil, xc: XC.new)
click to toggle source
# File lib/peach/device.rb, line 6 def initialize(name:, device_type:, runtime:, udid: nil, xc: XC.new) @name = name @device_type = device_type @runtime = runtime @udid = udid @xc = xc end
Public Instance Methods
==(o)
click to toggle source
# File lib/peach/device.rb, line 34 def ==(o) o.class == self.class && o.name == @name && o.device_type == @device_type && o.runtime == runtime end
Also aliased as: eql?
create()
click to toggle source
# File lib/peach/device.rb, line 18 def create runtime_id = @xc.runtimes.key(@runtime) if @xc.runtime_invalid(@runtime) puts "Unable to create #{@name}. Invalid runtime: #{@runtime}. Run \"xcrun simctl list runtimes\" to list available runtimes" elsif @xc.device_type_invalid(@device_type) puts "Unable to create #{@name}. Invalid device_type: #{@device_type}. Run \"xcrun simctl list devicetypes\" to list available devicetypes" else @udid = `xcrun simctl create \"#{@name}\" \"#{@device_type}\" \"#{runtime_id}\"`.strip end end
destroy()
click to toggle source
# File lib/peach/device.rb, line 29 def destroy `xcrun simctl delete #{@udid}` end
exists?()
click to toggle source
# File lib/peach/device.rb, line 14 def exists? Device.current_devices(xc: @xc).include?(self) end