xcresult 0.2.0 → 0.2.1

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: 719d1f64f463138bc78b23e18d124c07f815af7c7b052560d426feced0fbad64
4
- data.tar.gz: 2ac8faad5109f78cde5a7c3bdd56aea980fdb5d9bdd80b2b38568034a627ae65
3
+ metadata.gz: 7b6282d5f831eef163252d3fe270db888524996f034a2ae2cf5c861607c12af0
4
+ data.tar.gz: ebe2a795f4087b6ed890fd0ffe47c3ec656af23a7ff738a7ec24cc98681e7829
5
5
  SHA512:
6
- metadata.gz: 576989a630f4abdd1550ab25dfdfe8034df9349ebe17784061bc2468c52026509dd9d02e669225101436510127ddd27088ad56f51a2589d070e462740e775679
7
- data.tar.gz: 1a97becb5676f1f2c08ed4ef685785d008be4055c80c01d109fe0405387dbb3ed5fc34182d8cc619432e925cc0c492b257bce70ca1c5f53ccafcf0191a4bedbe
6
+ metadata.gz: 021774567136d57469be3bd4e978883dfb5fcec491f9b4a7af9581f87585a70800bf080b32a568b5871d705066c0c770baa0af7972bba640cd7644475eb10d87
7
+ data.tar.gz: 4a8304b642581168ded62f78393739605c05a830db811a3863d399b59476d7ca16f4f7ca253531065121b61ac6bd138aa73914ca5e0b554f1dbe477c8b7742df
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xcresult (0.1.1)
4
+ xcresult (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -13,7 +13,7 @@ GEM
13
13
  parser (2.6.4.1)
14
14
  ast (~> 2.4.0)
15
15
  rainbow (3.0.0)
16
- rake (10.5.0)
16
+ rake (13.0.1)
17
17
  rspec (3.8.0)
18
18
  rspec-core (~> 3.8.0)
19
19
  rspec-expectations (~> 3.8.0)
@@ -42,10 +42,10 @@ PLATFORMS
42
42
 
43
43
  DEPENDENCIES
44
44
  bundler (~> 2.0)
45
- rake (~> 10.0)
45
+ rake (~> 13.0)
46
46
  rspec (~> 3.0)
47
47
  rubocop
48
48
  xcresult!
49
49
 
50
50
  BUNDLED WITH
51
- 2.0.1
51
+ 2.0.2
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'xcresult/version'
4
+ require 'time'
4
5
  module XCResult
5
6
  # Model attributes and relationships taken from running the following command:
6
7
  # xcrun xcresulttool formatDescription
@@ -117,6 +118,8 @@ module XCResult
117
118
  type = data['_type']['_name']
118
119
  if type == 'ActionTestSummaryGroup'
119
120
  return ActionTestSummaryGroup.new(data, parent)
121
+ elsif type == 'ActionTestSummary'
122
+ return ActionTestSummary.new(data, parent)
120
123
  elsif type == 'ActionTestMetadata'
121
124
  return ActionTestMetadata.new(data, parent)
122
125
  else
@@ -160,12 +163,14 @@ module XCResult
160
163
  class ActionTestMetadata < ActionTestSummaryIdentifiableObject
161
164
  attr_accessor :test_status
162
165
  attr_accessor :duration
166
+ attr_accessor :summary_ref
163
167
  attr_accessor :performance_metrics_count
164
168
  attr_accessor :failure_summaries_count
165
169
  attr_accessor :activity_summaries_count
166
170
  def initialize(data, parent)
167
171
  self.test_status = fetch_value(data, 'testStatus')
168
172
  self.duration = fetch_value(data, 'duration').to_f
173
+ self.summary_ref = Reference.new(data['summaryRef']) if data['summaryRef']
169
174
  self.performance_metrics_count = fetch_value(data, 'performanceMetricsCount')
170
175
  self.failure_summaries_count = fetch_value(data, 'failureSummariesCount')
171
176
  self.activity_summaries_count = fetch_value(data, 'activitySummariesCount')
@@ -420,4 +425,126 @@ module XCResult
420
425
  new_message
421
426
  end
422
427
  end
428
+
429
+ # - ActionTestSummary
430
+ # * Supertype: ActionTestSummaryIdentifiableObject
431
+ # * Kind: object
432
+ # * Properties:
433
+ # + testStatus: String
434
+ # + duration: Double
435
+ # + performanceMetrics: [ActionTestPerformanceMetricSummary]
436
+ # + failureSummaries: [ActionTestFailureSummary]
437
+ # + activitySummaries: [ActionTestActivitySummary]
438
+ class ActionTestSummary < ActionTestSummaryIdentifiableObject
439
+ attr_accessor :test_status
440
+ attr_accessor :duration
441
+ attr_accessor :activity_summaries
442
+ def initialize(data, parent = nil)
443
+ self.test_status = fetch_value(data, 'testStatus')
444
+ self.duration = fetch_value(data, 'duration').to_f
445
+ self.activity_summaries = fetch_values(data, 'activitySummaries').map do |summary_data|
446
+ ActionTestActivitySummary.new(summary_data)
447
+ end
448
+ super(data, parent)
449
+ end
450
+ end
451
+
452
+ # - ActionTestActivitySummary
453
+ # * Kind: object
454
+ # * Properties:
455
+ # + title: String
456
+ # + activityType: String
457
+ # + uuid: String
458
+ # + start: Date?
459
+ # + finish: Date?
460
+ # + attachments: [ActionTestAttachment]
461
+ # + subactivities: [ActionTestActivitySummary]
462
+ class ActionTestActivitySummary < AbstractObject
463
+ attr_accessor :title
464
+ attr_accessor :activity_type
465
+ attr_accessor :uuid
466
+ attr_accessor :start
467
+ attr_accessor :finish
468
+ attr_accessor :attachments
469
+ attr_accessor :subactivities
470
+ def initialize(data)
471
+ self.title = fetch_value(data, 'title')
472
+ self.activity_type = fetch_value(data, 'activityType')
473
+ self.uuid = fetch_value(data, 'uuid')
474
+ self.start = Time.parse(fetch_value(data, 'start')) if data['start']
475
+ self.finish = Time.parse(fetch_value(data, 'finish')) if data['finish']
476
+ self.attachments = fetch_values(data, 'attachments').map do |attachment_data|
477
+ ActionTestAttachment.new(attachment_data)
478
+ end
479
+ self.subactivities = fetch_values(data, 'subactivities').map do |summary_data|
480
+ ActionTestActivitySummary.new(summary_data)
481
+ end
482
+ super(data)
483
+ end
484
+ end
485
+
486
+ # - ActionTestAttachment
487
+ # * Kind: object
488
+ # * Properties:
489
+ # + uniformTypeIdentifier: String
490
+ # + name: String?
491
+ # + timestamp: Date?
492
+ # + userInfo: SortedKeyValueArray?
493
+ # + lifetime: String
494
+ # + inActivityIdentifier: Int
495
+ # + filename: String?
496
+ # + payloadRef: Reference?
497
+ # + payloadSize: Int
498
+ class ActionTestAttachment < AbstractObject
499
+ attr_accessor :uniform_type_identifier
500
+ attr_accessor :name
501
+ attr_accessor :timestamp
502
+ attr_accessor :user_info
503
+ attr_accessor :lifetime
504
+ attr_accessor :in_activity_identifier
505
+ attr_accessor :filename
506
+ attr_accessor :payload_ref
507
+ attr_accessor :payload_size
508
+ def initialize(data)
509
+ self.uniform_type_identifier = fetch_value(data, 'uniformTypeIdentifier')
510
+ self.name = fetch_value(data, 'name')
511
+ self.timestamp = Time.parse(fetch_value(data, 'timestamp')) if data['timestamp']
512
+ self.user_info = SortedKeyValueArray.new(data['userInfo']) if data['userInfo']
513
+ self.lifetime = fetch_value(data, 'lifetime')
514
+ self.in_activity_identifier = fetch_value(data, 'inActivityIdentifier').to_i
515
+ self.filename = fetch_value(data, 'filename')
516
+ self.payload_ref = Reference.new(data['payloadRef']) if data['payloadRef']
517
+ self.payload_size = fetch_value(data, 'payloadSize').to_i
518
+ super(data)
519
+ end
520
+ end
521
+
522
+ # - SortedKeyValueArray
523
+ # * Kind: object
524
+ # * Properties:
525
+ # + storage: [SortedKeyValueArrayPair]
526
+ class SortedKeyValueArray < AbstractObject
527
+ attr_accessor :storage
528
+ def initialize(data)
529
+ self.storage = fetch_values(data, 'storage').map do |pair_data|
530
+ SortedKeyValueArrayPair.new(pair_data)
531
+ end
532
+ super(data)
533
+ end
534
+ end
535
+
536
+ # - SortedKeyValueArrayPair
537
+ # * Kind: object
538
+ # * Properties:
539
+ # + key: String
540
+ # + value: SchemaSerializable
541
+ class SortedKeyValueArrayPair < AbstractObject
542
+ attr_accessor :key
543
+ attr_accessor :value
544
+ def initialize(data)
545
+ self.key = fetch_value(data, 'key')
546
+ self.value = fetch_value(data, 'value')
547
+ super(data)
548
+ end
549
+ end
423
550
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module XCResult
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ['lib']
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 2.0'
26
- spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'rake', '~> 13.0'
27
27
  spec.add_development_dependency 'rspec', '~> 3.0'
28
28
  spec.add_development_dependency 'rubocop'
29
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcresult
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Holtz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-01 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
106
  - !ruby/object:Gem::Version
107
107
  version: '0'
108
108
  requirements: []
109
- rubygems_version: 3.0.3
109
+ rubygems_version: 3.0.6
110
110
  signing_key:
111
111
  specification_version: 4
112
112
  summary: Parses xcresult files