CommandLineToolkit
27 строк · 886.0 Байт
1import Foundation
2
3final class StringPathParsing {
4static func slashSeparatedComponents<S: StringProtocol>(path: S) -> [String] {
5return filteringDotComponents(
6components: slashSeparatedComponentsWithoutFiltering(path: path)
7)
8}
9
10static func slashSeparatedComponents<S: StringProtocol>(paths: [S]) -> [String] {
11return filteringDotComponents(
12components: paths.flatMap {
13slashSeparatedComponentsWithoutFiltering(path: $0)
14}
15)
16}
17
18private static func slashSeparatedComponentsWithoutFiltering<S: StringProtocol>(path: S) -> [String] {
19return path.components(separatedBy: "/").filter { !$0.isEmpty }
20}
21
22private static func filteringDotComponents(components: [String]) -> [String] {
23return components.filter {
24$0 != "."
25}
26}
27}
28