elpeacho 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/peach.rb +2 -3
- data/lib/peach/device.rb +16 -11
- data/lib/peach/xc.rb +8 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b78b074627d32ccde7242115fcf3dd37703754a0e23b3ae1e38bb88b9954b60e
|
4
|
+
data.tar.gz: 6f4943ea01ee6e383a16756d0827c13aee574bb1b50ca1d329f52ab81f5865bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1245030f1a185eca3cdf4510e2ec09bba6b3412c338832dba4c2a8e30e44deb732d06ce475baac370b6dc8f39d71350d32d4e6fdbae92652ee799161a22c3c71
|
7
|
+
data.tar.gz: '08b8a9133480cbb1e15c1503397f843429cced850c2d442f9b7146f35ecce56aa7a18f8af7d47ccb001eea4af22b8bd8c74bd692e7725e4691e039500a47d4a1'
|
data/lib/peach.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
1
|
require 'json'
|
4
2
|
require 'yaml'
|
5
3
|
require 'peach/device'
|
@@ -12,12 +10,13 @@ class Peach
|
|
12
10
|
end
|
13
11
|
|
14
12
|
def createDevices(peachFile = 'peach.yml')
|
13
|
+
xc = XC.new
|
15
14
|
peaches = YAML.load_file(peachFile)
|
16
15
|
peaches.each do |properties|
|
17
16
|
peach_name = properties["name"]
|
18
17
|
peach_device = properties["device_type"]
|
19
18
|
peach_runtime = properties["runtime"]
|
20
|
-
peach = Device.new(name: peach_name, device_type: peach_device, runtime: peach_runtime)
|
19
|
+
peach = Device.new(name: peach_name, device_type: peach_device, runtime: peach_runtime, xc: xc)
|
21
20
|
peach.create() unless peach.exists?
|
22
21
|
end
|
23
22
|
end
|
data/lib/peach/device.rb
CHANGED
@@ -3,26 +3,31 @@ require 'plist'
|
|
3
3
|
class Device
|
4
4
|
attr_reader :name, :device_type, :runtime, :udid
|
5
5
|
|
6
|
-
def initialize(name:, device_type:, runtime:, udid: nil)
|
6
|
+
def initialize(name:, device_type:, runtime:, udid: nil, xc: XC.new)
|
7
7
|
@name = name
|
8
8
|
@device_type = device_type
|
9
9
|
@runtime = runtime
|
10
10
|
@udid = udid
|
11
|
+
@xc = xc
|
11
12
|
end
|
12
13
|
|
13
14
|
def exists?
|
14
|
-
|
15
|
-
Device.current_devices(xc: XC.new).include?(self)
|
15
|
+
Device.current_devices(xc: @xc).include?(self)
|
16
16
|
end
|
17
17
|
|
18
18
|
def create
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
19
|
+
runtime_id = @xc.runtimes.key(@runtime)
|
20
|
+
if @xc.runtime_invalid(@runtime)
|
21
|
+
puts "Unable to create #{@name}. Invalid runtime: #{@runtime}. Run \"xcrun simctl list runtimes\" to list available runtimes"
|
22
|
+
elsif @xc.device_type_invalid(@device_type)
|
23
|
+
puts "Unable to create #{@name}. Invalid device_type: #{@device_type}. Run \"xcrun simctl list devicetypes\" to list available devicetypes"
|
24
|
+
else
|
25
|
+
`xcrun simctl create \"#{@name}\" \"#{@device_type}\" \"#{runtime_id}\"`
|
26
|
+
|
27
|
+
# reload everything to get the device.
|
28
|
+
newDevices = Device.current_devices(xc: @xc).select { |d| d == self }
|
29
|
+
@udid = newDevices.first.udid
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
def destroy
|
@@ -58,7 +63,7 @@ class Device
|
|
58
63
|
device_name = d["name"]
|
59
64
|
device_udid = d["udid"]
|
60
65
|
device_type = device_type(udid: device_udid, xc: xc)
|
61
|
-
devices << Device.new(name: device_name, device_type: device_type, runtime: runtime, udid: device_udid)
|
66
|
+
devices << Device.new(name: device_name, device_type: device_type, runtime: runtime, udid: device_udid, xc: xc)
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
data/lib/peach/xc.rb
CHANGED
@@ -19,6 +19,14 @@ class XC
|
|
19
19
|
return @device_types[identifier]
|
20
20
|
end
|
21
21
|
|
22
|
+
def runtime_invalid(runtime)
|
23
|
+
@runtimes.select { |_, val| val == runtime }.empty?
|
24
|
+
end
|
25
|
+
|
26
|
+
def device_type_invalid(device_type)
|
27
|
+
@device_types.select { |_, val| val == device_type }.empty?
|
28
|
+
end
|
29
|
+
|
22
30
|
def init_runtimes
|
23
31
|
runtimes_json = JSON.parse(load_runtimes())
|
24
32
|
runtimes = runtimes_json['runtimes']
|