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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3637b17f3531279f5834e51d40c8ab526648991af630a7d88731bcc630749abd
4
- data.tar.gz: c7075d7b12ab3261f71c90600bc154e1ec33db54fe4c70ee03daeceef49f9ce2
3
+ metadata.gz: b78b074627d32ccde7242115fcf3dd37703754a0e23b3ae1e38bb88b9954b60e
4
+ data.tar.gz: 6f4943ea01ee6e383a16756d0827c13aee574bb1b50ca1d329f52ab81f5865bf
5
5
  SHA512:
6
- metadata.gz: 7ba5c152d54497a28829788685523a774b9bd0b3a10fb7ff4ea9bc0eebcb7a9d799d4eedfa51f09de339eda113425bedb43482df94575f4d93d2b80ca7ca35de
7
- data.tar.gz: c39dd12b14a4e9f67b5ad90d863c14c05d8a95f2ee4460b3eb882d90c7e9fef59da39cf4c5489bfdf1bf4586c8bef89e68ea629822db2896ea0d85635e5e2f45
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
- #could pass XC in? Make this a class function?
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
- xc = XC.new
20
- runtime_id = xc.runtimes.key(@runtime)
21
- `xcrun simctl create \"#{@name}\" \"#{@device_type}\" \"#{runtime_id}\"`
22
-
23
- # reload everything to get the device.
24
- newDevices = Device.current_devices(xc: xc).select { |d| d == self }
25
- @udid = newDevices.first.udid
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']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elpeacho
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Barnes