Skip to content

Commit 3b0da09

Browse files
committed
adding sort ability on the PBXBuildPhase
1 parent d34fb65 commit 3b0da09

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//
2+
// PBXBuildPhase+Sorting.swift
3+
// XcodeProject
4+
//
5+
// Created by Geoffrey Foster on 2017-12-19.
6+
// Copyright © 2017 Geoffrey Foster. All rights reserved.
7+
//
8+
9+
import Foundation
10+
11+
public extension PBXBuildPhase {
12+
func sort(by option: PBXReference.SortOption = .name) {
13+
sort(by: option.compare)
14+
}
15+
16+
func sort(by areInIncreasingOrder: (PBXReference, PBXReference) -> Bool) {
17+
files.sort { (lhs, rhs) -> Bool in
18+
switch (lhs.fileRef, rhs.fileRef) {
19+
case (.some, .none), (.none, .none):
20+
return true
21+
case (.none, .some):
22+
return false
23+
case (.some(let lhsFile), .some(let rhsFile)):
24+
return areInIncreasingOrder(lhsFile, rhsFile)
25+
}
26+
}
27+
}
28+
}

Sources/XcodeProject/Objects+Extensions/PBXReference+Extensions.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import Foundation
1010

11+
public extension PBXReference {
1112
public extension PBXReference {
1213
var url: URL? {
1314
guard let sourceTree = sourceTree else { return nil }
@@ -35,7 +36,7 @@ public extension PBXReference {
3536
case type
3637

3738
private func compareName(_ lhs: PBXReference, _ rhs: PBXReference) -> Bool {
38-
return lhs.archiveComment.caseInsensitiveCompare(rhs.archiveComment) == .orderedAscending
39+
return lhs.archiveComment.localizedStandardCompare(rhs.archiveComment) == .orderedAscending
3940
}
4041

4142
private func compareType(_ lhs: PBXReference, _ rhs: PBXReference) -> Bool {

0 commit comments

Comments
 (0)