elpeacho 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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']
|