From a222c4d15a87f314f130e298222cbf4bc55d35a7 Mon Sep 17 00:00:00 2001 From: Kare Morstol Date: Tue, 8 Sep 2015 23:44:09 +0200 Subject: [PATCH] Implement "NSURL / String" operator. Overriding a standard operator for a completely different use case like this is not normally recommended, but I think it is warranted here. It's certainly a lot better than "URLByAppendingPathComponent". --- SwiftShell/Files.swift | 4 ++++ SwiftShellTests/Files_Tests.swift | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/SwiftShell/Files.swift b/SwiftShell/Files.swift index 8bdb9b6..9c876b2 100644 --- a/SwiftShell/Files.swift +++ b/SwiftShell/Files.swift @@ -10,3 +10,7 @@ import Foundation /** The default NSFileManager */ public let Files = NSFileManager.defaultManager() +/** Append file or directory url to directory url */ +public func / (leftpath: NSURL, rightpath: String) -> NSURL { + return leftpath.URLByAppendingPathComponent(rightpath) +} diff --git a/SwiftShellTests/Files_Tests.swift b/SwiftShellTests/Files_Tests.swift index 431704f..b6a8b37 100644 --- a/SwiftShellTests/Files_Tests.swift +++ b/SwiftShellTests/Files_Tests.swift @@ -9,6 +9,11 @@ import SwiftShell import XCTest -class Files_Tests: XCTestCase { +class UrlAppendationOperator: XCTestCase { + func testUrlSlashString () { + XCTAssertEqual( NSURL(fileURLWithPath: "dir") / "file.txt", NSURL(fileURLWithPath: "dir/file.txt")) + XCTAssertEqual( NSURL(fileURLWithPath: "dir/") / "/file.txt", NSURL(fileURLWithPath: "dir/file.txt")) + XCTAssertEqual( NSURL(string: "dir")! / "file.txt", NSURL(string: "dir/file.txt")) + } }