xctasks 0.5.0 → 0.6.0

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
  SHA1:
3
- metadata.gz: 8def5c8a26145c94427549a366caab5948f7b9ea
4
- data.tar.gz: 2c7b17dbe330e73a1dd968fd2849bf20007a19fd
3
+ metadata.gz: 398b35d69e8cb72b95fbd9797f99d4fbbe7c0c99
4
+ data.tar.gz: 56bc397573f2e17add6b2d4955884817076b7dbe
5
5
  SHA512:
6
- metadata.gz: 14f9d086b5cd23e8f9d1c9860b805e88fdd8775d1ece4276a76cb8c8e226a70d0e5a9b7cf9b7b41cbb285ac7780f672b8b04946eaac705b5503454815103d876
7
- data.tar.gz: 9c04c2b49bdf955958b479c8ea1f9b732963c1016d28180508254a38c01263aca0f80bc1a7f71534d3ac3b33c9c3444aa9b9e427897b753090b078fe419ec977
6
+ metadata.gz: d710b1d4ae9f0f050a06b57f5a10ebe22f8db53452f4193a396b7b537b6b623fb7f8f0af06863c2641fb5677d91e84ad20dc10f1f5982f97a8c462811db06eca
7
+ data.tar.gz: b252c5756bd9ade5cb9959000604b80ed86ee6da4dfd705b7f4c19e3ca38f0a0862476717a343d83dc751e04844e8c3eb462a86a254b54427a0013560400f706
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xctasks (0.4.1)
4
+ xctasks (0.6.0)
5
5
  nokogiri (~> 1.6, >= 1.6.3.1)
6
6
  rake (~> 10.0, >= 10.0.0)
7
7
 
@@ -19,11 +19,11 @@ GEM
19
19
  debugger-linecache (1.2.0)
20
20
  diff-lcs (1.2.5)
21
21
  excon (0.26.0)
22
- mini_portile (0.6.0)
22
+ mini_portile (0.6.2)
23
23
  multi_json (1.9.0)
24
- nokogiri (1.6.3.1)
25
- mini_portile (= 0.6.0)
26
- rake (10.3.2)
24
+ nokogiri (1.6.6.2)
25
+ mini_portile (~> 0.6.0)
26
+ rake (10.4.2)
27
27
  rspec (2.14.1)
28
28
  rspec-core (~> 2.14.0)
29
29
  rspec-expectations (~> 2.14.0)
@@ -156,6 +156,8 @@ module XCTasks
156
156
  destination = Destination.new(specifier)
157
157
  yield destination if block_given?
158
158
  @destinations << destination
159
+ elsif specifier.kind_of?(Destination)
160
+ @destinations << specifier
159
161
  else
160
162
  raise ArgumentError, "Cannot configure a destination with a #{specifier}"
161
163
  end
@@ -238,7 +240,6 @@ module XCTasks
238
240
  def run_tests(options = {})
239
241
  ios_version = options[:ios_version]
240
242
  XCTasks::Command.run(%q{killall "iPhone Simulator"}, false) if sdk == :iphonesimulator
241
-
242
243
  target = workspace ? "-workspace #{workspace}" : "-project #{project}"
243
244
 
244
245
  output_log_command = output_log ? "| tee -a #{output_log}" : nil
@@ -297,13 +298,14 @@ module XCTasks
297
298
 
298
299
  include ::Rake::DSL if defined?(::Rake::DSL)
299
300
 
300
- attr_reader :namespace_name, :prepare_dependency, :config, :subtasks
301
+ attr_reader :namespace_name, :prepare_dependency, :config, :subtasks, :destination
301
302
  extend Configuration::Delegations
302
303
 
303
304
  def initialize(namespace_name = :test)
304
305
  @namespace_name = namespace_name
305
306
  @config = Configuration.new
306
307
  @subtasks = []
308
+ @destination
307
309
  @namespace_name = namespace_name.kind_of?(Hash) ? namespace_name.keys.first : namespace_name
308
310
  @prepare_dependency = namespace_name.kind_of?(Hash) ? namespace_name.values.first : nil
309
311
 
@@ -312,7 +314,7 @@ module XCTasks
312
314
  raise ConfigurationError, "At least one subtask must be configured" if subtasks.empty?
313
315
  define_rake_tasks
314
316
  end
315
-
317
+
316
318
  def subtasks=(subtasks)
317
319
  if subtasks.kind_of?(Hash)
318
320
  subtasks.each { |name, scheme| subtask(name => scheme) }
@@ -324,9 +326,26 @@ module XCTasks
324
326
  def subtask(name_options)
325
327
  subtask = Subtask.new(name_options, config)
326
328
  yield subtask if block_given?
329
+ if @destination
330
+ subtask.destination @destination
331
+ end
327
332
  @subtasks << subtask
328
333
  end
329
-
334
+
335
+ def destination(specifier = {})
336
+ if specifier.kind_of?(String)
337
+ raise ArgumentError, "Cannot configure a destination via a block when a complete String specifier is provided" if block_given?
338
+ @destinations << specifier.shellescape
339
+ elsif specifier.kind_of?(Hash)
340
+ destination = Destination.new(specifier)
341
+ yield destination if block_given?
342
+ @destination = destination
343
+ subtasks.each do |s|
344
+ s.destination destination
345
+ end
346
+ end
347
+ end
348
+
330
349
  def define_rake_tasks
331
350
  namespace self.namespace_name do
332
351
  task (prepare_dependency ? { prepare: prepare_dependency} : :prepare ) do
@@ -1,3 +1,3 @@
1
1
  module XCTasks
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -350,6 +350,7 @@ describe XCTasks::TestTask do
350
350
  end
351
351
  end
352
352
  end
353
+
353
354
 
354
355
  describe 'spec:unit' do
355
356
  subject { Rake.application['spec:unit'] }
@@ -377,6 +378,42 @@ describe XCTasks::TestTask do
377
378
  end
378
379
  end
379
380
 
381
+ describe 'Global destination configuration applies to multiple subtasks' do
382
+ let!(:task) do
383
+ XCTasks::TestTask.new(:spec) do |t|
384
+ t.workspace = 'LayerKit.xcworkspace'
385
+ t.runner = :xctool
386
+ t.subtasks = {unit: 'Unit Tests', functional: 'Functional Tests'}
387
+ t.destination do |d|
388
+ d.platform = :iossimulator
389
+ d.name = 'iPhone 6 Plus'
390
+ d.os = :latest
391
+ end
392
+ end
393
+ end
394
+
395
+ describe 'spec:unit' do
396
+ it "configures the destination for each subtask" do
397
+ task.subtasks do |t|
398
+ t.destination.platform.should == :iossimulator
399
+ t.destination.name.should == 'iPhone 6 Plus'
400
+ t.destination.os.should == :latest
401
+ end
402
+ end
403
+ end
404
+
405
+ describe 'spec:unit' do
406
+ subject { Rake.application['spec:unit'] }
407
+ it "configures the appropriate destination commands" do
408
+ subject.invoke
409
+ @commands.should == [
410
+ "killall \"iPhone Simulator\"",
411
+ "/usr/local/bin/xctool -workspace LayerKit.xcworkspace -scheme 'Unit Tests' -sdk iphonesimulator -destination platform='iOS Simulator',name='iPhone 6 Plus',OS='latest' clean build test"
412
+ ]
413
+ end
414
+ end
415
+ end
416
+
380
417
  describe 'SDK Configuration' do
381
418
  let!(:task) do
382
419
  XCTasks::TestTask.new(:spec) do |t|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xctasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Blake Watters
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake