doxy/Library/Sources/Internal/Extensions/Path+Functions.swift

42 lines
912 B
Swift

enum Path {
// MARK: Functions
static func archiveName(from path: String) -> String {
let pathComponents = path.split(separator: .forwardSlash)
return pathComponents.count > 1
? String(pathComponents[1]).lowercased()
: .empty
}
static func resourcePath(from path: String) -> String {
let matches = path.matches(of: /\//)
return matches.count > 2
? .init(path[matches[2].startIndex...])
: .forwardSlash
}
}
// MARK: - String+Constants
extension String {
static let empty = ""
static let forwardSlash = "/"
static let previousFolder = ".."
}
// MARK: - Character+Constants
private extension Character {
static let forwardSlash: Character = "/"
}
// MARK: - String+Formats
private extension String.Format {
static let archiveDocC = "%@.doccarchive"
}