Class: RunLoop::Device
- Inherits:
-
Object
- Object
- RunLoop::Device
- Defined in:
- lib/run_loop/device.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#state ⇒ Object
readonly
Returns the value of attribute state.
-
#udid ⇒ Object
readonly
Returns the value of attribute udid.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
-
#initialize(name, version, udid, state = nil) ⇒ Device
constructor
Create a new device.
-
#instruction_set ⇒ String
Return the instruction set for this device.
-
#instruments_identifier(xcode_tools = RunLoop::XCTools.new) ⇒ String
Returns and instruments-ready device identifier that is a suitable value for DEVICE_TARGET environment variable.
-
#physical_device? ⇒ Boolean
Is this a physical device?.
-
#simulator? ⇒ Boolean
Is this a simulator?.
Constructor Details
#initialize(name, version, udid, state = nil) ⇒ Device
Create a new device.
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/run_loop/device.rb', line 20 def initialize(name, version, udid, state=nil) @name = name @udid = udid @state = state if version.is_a? String @version = RunLoop::Version.new version else @version = version end end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/run_loop/device.rb', line 4 def name @name end |
#state ⇒ Object (readonly)
Returns the value of attribute state.
7 8 9 |
# File 'lib/run_loop/device.rb', line 7 def state @state end |
#udid ⇒ Object (readonly)
Returns the value of attribute udid.
6 7 8 |
# File 'lib/run_loop/device.rb', line 6 def udid @udid end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
5 6 7 |
# File 'lib/run_loop/device.rb', line 5 def version @version end |
Instance Method Details
#instruction_set ⇒ String
Finding the instruction set of a device requires a third-party tool like ideviceinfo. Example: ‘$ ideviceinfo -u 89b59 < snip > ab7ba –key ’CPUArchitecture’ => arm64`
Return the instruction set for this device.
Simulator The simulator instruction set will be i386 or x86_64 depending on the the (marketing) name of the device.
78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/run_loop/device.rb', line 78 def instruction_set if self.simulator? if ['iPhone 4s', 'iPhone 5', 'iPad 2', 'iPad Retina'].include?(self.name) 'i386' else 'x86_64' end else raise 'Finding the instruction set of a device requires a third-party tool like ideviceinfo' end end |
#instruments_identifier(xcode_tools = RunLoop::XCTools.new) ⇒ String
Returns and instruments-ready device identifier that is a suitable value for DEVICE_TARGET environment variable.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/run_loop/device.rb', line 38 def instruments_identifier(xcode_tools=RunLoop::XCTools.new) if physical_device? self.udid else unless xcode_tools.xcode_version_gte_6? raise "Expected Xcode >= 6, but found version #{xcode_tools.version} - cannot create an identifier" end if self.version == RunLoop::Version.new('7.0.3') version_part = self.version.to_s else version_part = "#{self.version.major}.#{self.version.minor}" end "#{self.name} (#{version_part} Simulator)" end end |
#physical_device? ⇒ Boolean
Is this a physical device?
56 57 58 |
# File 'lib/run_loop/device.rb', line 56 def physical_device? not self.udid[/[a-f0-9]{40}/, 0].nil? end |
#simulator? ⇒ Boolean
Is this a simulator?
62 63 64 |
# File 'lib/run_loop/device.rb', line 62 def simulator? not self.physical_device? end |