class DeviceAPI::IOS::IDevice
Namespace for all methods encapsulating idevice calls
Public Class Methods
devices()
click to toggle source
Returns an array of hashes representing connected devices @return (Array) Hash containing serial and device name
# File lib/device_api/ios/idevice.rb, line 12 def self.devices result = execute_with_timeout_and_retry('idevice_id -l') raise IDeviceCommandError.new(result.stderr) if result.exit != 0 lines = result.stdout.split("\n") results = {} lines.each do |ln| if /[0-9a-zA-Z].*/.match(ln) results[ln] = execute_with_timeout_and_retry("ideviceinfo -u #{ln} -k DeviceName").stdout.strip end end results end
get_props(device_id)
click to toggle source
Returns a Hash containing properties of the specified device using idevice_id. @param device_id uuid of the device @return (Hash) key value pair of properties
# File lib/device_api/ios/idevice.rb, line 41 def self.get_props(device_id) result = execute("ideviceinfo -u '#{device_id}'") raise IDeviceCommandError.new(result.stderr) if result.exit != 0 result = result.stdout props = {} unless result.start_with?('Usage:') prop_list = result.split("\n") prop_list.each do |line| matches = line.scan(/(.*): (.*)/) prop_name, prop_value = matches[0] props[prop_name.strip] = prop_value.strip end end props end
trusted?(device_id)
click to toggle source
Check to see if device has trusted the computer @param device_id uuid of the device @return true if the device returns information to ideviceinfo, otherwise false
# File lib/device_api/ios/idevice.rb, line 31 def self.trusted?(device_id) result = execute("ideviceinfo -u '#{device_id}'") lines = result.stdout.split("\n") result.exit == 0 and lines.length > 0 and not lines[0].match('Usage') end