Class: DeviceAPI::IOS::Device

Inherits:
Device
  • Object
show all
Defined in:
lib/device_api/ios/device.rb

Overview

Namespace for the Device object.

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Device

Returns a new instance of Device.



13
14
15
16
# File 'lib/device_api/ios/device.rb', line 13

def initialize(options = {})
  @serial = options[:serial]
  @state = options[:state]
end

Instance Method Details

#device_classString

Return the device class - i.e. iPad, iPhone, etc

Returns:

  • (String)

    iOS device class



48
49
50
# File 'lib/device_api/ios/device.rb', line 48

def device_class
  get_prop('DeviceClass')
end

#imeiString

Get the IMEI number of the device

Returns:

  • (String)

    IMEI number of current device



54
55
56
# File 'lib/device_api/ios/device.rb', line 54

def imei
  get_prop('InternationalMobileEquipmentIdentity')
end

#install(ipa) ⇒ Boolean, Exception

Install a specified IPA

Parameters:

  • ipa (String)

    string containing path to the IPA to install

Returns:

  • (Boolean, Exception)

    true when the IPA installed successfully, otherwise an error is raised



79
80
81
82
83
84
85
86
# File 'lib/device_api/ios/device.rb', line 79

def install(ipa)
  fail StandardError, 'No IPA or app specified.', caller if ipa.empty?

  res = install_ipa(ipa)

  fail StandardError, res, caller unless res
  true
end

#ip_addressString

Get the IP Address from the device

Returns:

  • (String)

    IP Address of current device



66
67
68
# File 'lib/device_api/ios/device.rb', line 66

def ip_address
  IPAddress.address(serial)
end

#modelString

Look up device model using the ios-devices gem - changing ‘iPad4,7’ to ‘iPad mini 3’

Returns:

  • (String)

    human readable model and version (where applicable)



36
37
38
# File 'lib/device_api/ios/device.rb', line 36

def model
  Ios::Devices.search(get_prop('ProductType')).name
end

#nameString

Look up device name - i.e. Bob’s iPhone

Returns:

  • (String)

    iOS device name



30
31
32
# File 'lib/device_api/ios/device.rb', line 30

def name
  IDeviceName.name(serial)
end

#statusString

Mapping of device status - used to provide a consistent status across platforms

Returns:

  • (String)

    common status string



20
21
22
23
24
25
26
# File 'lib/device_api/ios/device.rb', line 20

def status
  {
      'device' => :ok,
      'no device' => :dead,
      'offline' => :offline
  }[@state]
end

#trusted?Boolean

Has the ‘Trust this device’ dialog been accepted?

Returns:

  • (Boolean)

    true if the device is trusted, otherwise false



60
61
62
# File 'lib/device_api/ios/device.rb', line 60

def trusted?
  IDevice.trusted?(serial)
end

#typeSymbol

Return whether or not the device is a tablet or mobile

Returns:

  • (Symbol)

    :tablet or :mobile depending on device_class



100
101
102
103
104
105
106
# File 'lib/device_api/ios/device.rb', line 100

def type
  if device_class.downcase == 'ipad'
    :tablet
  else
    :mobile
  end
end

#uninstall(package_name) ⇒ Boolean, Exception

Uninstall a specified package

Parameters:

  • package_name (String)

    string containing name of package to uninstall

Returns:

  • (Boolean, Exception)

    true when the package is uninstalled successfully, otherwise an error is raised



91
92
93
94
95
96
# File 'lib/device_api/ios/device.rb', line 91

def uninstall(package_name)
  res = uninstall_package(package_name)

  fail StandardError, res, caller unless res
  true
end

#versionString

Returns the devices iOS version number - i.e. 8.2

Returns:

  • (String)

    iOS version number



42
43
44
# File 'lib/device_api/ios/device.rb', line 42

def version
  get_prop('ProductVersion')
end

#wifi_mac_addressString

Get the Wifi Mac address for the current device

Returns:

  • (String)

    Mac address of current device



72
73
74
# File 'lib/device_api/ios/device.rb', line 72

def wifi_mac_address
  get_prop('WiFiAddress')
end