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 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