diff --git a/SwiftFilePath.podspec b/SwiftFilePath.podspec
index 626c24d..12d799e 100644
--- a/SwiftFilePath.podspec
+++ b/SwiftFilePath.podspec
@@ -2,7 +2,7 @@
Pod::Spec.new do |s|
s.name = "SwiftFilePath"
- s.version = "0.0.6"
+ s.version = "0.0.7"
s.summary = "Simple and powerful wrapper for NSFileManager."
s.homepage = "https://github.com/nori0620/SwiftFilePath"
s.license = "MIT"
diff --git a/SwiftFilePath.xcodeproj/project.pbxproj b/SwiftFilePath.xcodeproj/project.pbxproj
index fa1a1a8..9a1746f 100644
--- a/SwiftFilePath.xcodeproj/project.pbxproj
+++ b/SwiftFilePath.xcodeproj/project.pbxproj
@@ -366,14 +366,16 @@
attributes = {
LastSwiftMigration = 0700;
LastSwiftUpdateCheck = 0710;
- LastUpgradeCheck = 0700;
+ LastUpgradeCheck = 1010;
ORGANIZATIONNAME = "Norihiro Sakamoto";
TargetAttributes = {
CC7832EB1A610124005E77C3 = {
CreatedOnToolsVersion = 6.1;
+ LastSwiftMigration = 1010;
};
CC7832F61A610125005E77C3 = {
CreatedOnToolsVersion = 6.1;
+ LastSwiftMigration = 1010;
};
D63BC3981C172BCD0071D0E2 = {
CreatedOnToolsVersion = 7.1.1;
@@ -565,13 +567,23 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -581,6 +593,7 @@
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -612,13 +625,23 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -627,6 +650,7 @@
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -636,6 +660,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
+ SWIFT_COMPILATION_MODE = wholemodule;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
@@ -647,6 +672,7 @@
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
+ CODE_SIGN_IDENTITY = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
@@ -657,6 +683,8 @@
PRODUCT_BUNDLE_IDENTIFIER = "me.nori0620.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = SwiftFilePath;
SKIP_INSTALL = YES;
+ SWIFT_SWIFT3_OBJC_INFERENCE = On;
+ SWIFT_VERSION = 4.2;
};
name = Debug;
};
@@ -664,6 +692,7 @@
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
+ CODE_SIGN_IDENTITY = "";
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
@@ -674,6 +703,8 @@
PRODUCT_BUNDLE_IDENTIFIER = "me.nori0620.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = SwiftFilePath;
SKIP_INSTALL = YES;
+ SWIFT_SWIFT3_OBJC_INFERENCE = On;
+ SWIFT_VERSION = 4.2;
};
name = Release;
};
@@ -692,6 +723,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "me.nori0620.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = On;
+ SWIFT_VERSION = 4.2;
};
name = Debug;
};
@@ -706,12 +739,15 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "me.nori0620.$(PRODUCT_NAME:rfc1034identifier)";
PRODUCT_NAME = "$(TARGET_NAME)";
+ SWIFT_SWIFT3_OBJC_INFERENCE = On;
+ SWIFT_VERSION = 4.2;
};
name = Release;
};
D63BC3AB1C172BCD0071D0E2 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CODE_SIGN_IDENTITY = "";
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -733,6 +769,7 @@
D63BC3AC1C172BCD0071D0E2 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
@@ -785,6 +822,7 @@
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
+ CODE_SIGN_IDENTITY = "";
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
@@ -807,6 +845,7 @@
isa = XCBuildConfiguration;
buildSettings = {
APPLICATION_EXTENSION_API_ONLY = YES;
+ CODE_SIGN_IDENTITY = "";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
@@ -941,6 +980,7 @@
D63BC3AC1C172BCD0071D0E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
D63BC3AD1C172BCD0071D0E2 /* Build configuration list for PBXNativeTarget "SwiftFilePath-tvOS Tests" */ = {
isa = XCConfigurationList;
@@ -949,6 +989,7 @@
D63BC3AF1C172BCD0071D0E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
D63BC3BA1C172C540071D0E2 /* Build configuration list for PBXNativeTarget "SwiftFilePath-watchOS" */ = {
isa = XCConfigurationList;
@@ -957,6 +998,7 @@
D63BC3BC1C172C540071D0E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
D63BC3D31C172C740071D0E2 /* Build configuration list for PBXNativeTarget "SwiftFilePath-Mac" */ = {
isa = XCConfigurationList;
@@ -965,6 +1007,7 @@
D63BC3D51C172C740071D0E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
D63BC3D61C172C740071D0E2 /* Build configuration list for PBXNativeTarget "SwiftFilePath-Mac Tests" */ = {
isa = XCConfigurationList;
@@ -973,6 +1016,7 @@
D63BC3D81C172C740071D0E2 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
diff --git a/SwiftFilePath.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SwiftFilePath.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/SwiftFilePath.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/SwiftFilePath.xcodeproj/xcshareddata/xcschemes/SwiftFilePath-Mac.xcscheme b/SwiftFilePath.xcodeproj/xcshareddata/xcschemes/SwiftFilePath-Mac.xcscheme
index eaa5516..54f327c 100644
--- a/SwiftFilePath.xcodeproj/xcshareddata/xcschemes/SwiftFilePath-Mac.xcscheme
+++ b/SwiftFilePath.xcodeproj/xcshareddata/xcschemes/SwiftFilePath-Mac.xcscheme
@@ -1,6 +1,6 @@
Bool {
+ open class func isDir(_ path:NSString) -> Bool {
var isDirectory: ObjCBool = false
- NSFileManager.defaultManager().fileExistsAtPath(path as String, isDirectory:&isDirectory)
- return isDirectory ? true : false
+ FileManager.default.fileExists(atPath: path as String, isDirectory:&isDirectory)
+ return isDirectory.boolValue ? true : false
}
// MARK: - Instance properties and initializer
- lazy var fileManager = NSFileManager.defaultManager()
- public let path_string:String
+ lazy var fileManager = FileManager.default
+ let path_string:String
public init(_ p: String) {
@@ -28,42 +28,42 @@ public class Path {
// MARK: - Instance val
- public var attributes:NSDictionary?{
+ open var attributes:NSDictionary?{
get { return self.loadAttributes() }
}
- public var asString: String {
+ open var asString: String {
return path_string
}
- public var exists: Bool {
- return fileManager.fileExistsAtPath(path_string)
+ open var exists: Bool {
+ return fileManager.fileExists(atPath: path_string)
}
- public var isDir: Bool {
- return Path.isDir(path_string);
+ open var isDir: Bool {
+ return Path.isDir(path_string as NSString);
}
- public var basename:NSString {
- return ( path_string as NSString ).lastPathComponent
+ open var basename:NSString {
+ return ( path_string as NSString ).lastPathComponent as NSString
}
- public var parent: Path{
- return Path( (path_string as NSString ).stringByDeletingLastPathComponent )
+ open var parent: Path{
+ return Path( (path_string as NSString ).deletingLastPathComponent )
}
// MARK: - Instance methods
- public func toString() -> String {
+ open func toString() -> String {
return path_string
}
- public func remove() -> Result {
+ open func remove() -> Result {
assert(self.exists,"To remove file, file MUST be exists")
var error: NSError?
let result: Bool
do {
- try fileManager.removeItemAtPath(path_string)
+ try fileManager.removeItem(atPath: path_string)
result = true
} catch let error1 as NSError {
error = error1
@@ -74,12 +74,12 @@ public class Path {
: Result(failure: error!);
}
- public func copyTo(toPath:Path) -> Result {
+ open func copyTo(_ toPath:Path) -> Result {
assert(self.exists,"To copy file, file MUST be exists")
var error: NSError?
let result: Bool
do {
- try fileManager.copyItemAtPath(path_string,
+ try fileManager.copyItem(atPath: path_string,
toPath: toPath.toString())
result = true
} catch let error1 as NSError {
@@ -91,12 +91,12 @@ public class Path {
: Result(failure: error!)
}
- public func moveTo(toPath:Path) -> Result {
+ open func moveTo(_ toPath:Path) -> Result {
assert(self.exists,"To move file, file MUST be exists")
var error: NSError?
let result: Bool
do {
- try fileManager.moveItemAtPath(path_string,
+ try fileManager.moveItem(atPath: path_string,
toPath: toPath.toString())
result = true
} catch let error1 as NSError {
@@ -108,12 +108,12 @@ public class Path {
: Result(failure: error!)
}
- private func loadAttributes() -> NSDictionary? {
+ fileprivate func loadAttributes() -> NSDictionary? {
assert(self.exists,"File must be exists to load file.< \(path_string) >")
var loadError: NSError?
- let result: [NSObject: AnyObject]?
+ let result: [AnyHashable: Any]?
do {
- result = try self.fileManager.attributesOfItemAtPath(path_string)
+ result = try self.fileManager.attributesOfItem(atPath: path_string)
} catch let error as NSError {
loadError = error
result = nil
@@ -123,7 +123,7 @@ public class Path {
print("Error< \(error.localizedDescription) >")
}
- return result
+ return result as NSDictionary?
}
}
@@ -132,7 +132,7 @@ public class Path {
extension Path: CustomStringConvertible {
public var description: String {
- return "\(NSStringFromClass(self.dynamicType))"
+ return "\(NSStringFromClass(type(of: self)))"
}
}
diff --git a/SwiftFilePath/PathExtensionDir.swift b/SwiftFilePath/PathExtensionDir.swift
index 52dfb2e..382acca 100644
--- a/SwiftFilePath/PathExtensionDir.swift
+++ b/SwiftFilePath/PathExtensionDir.swift
@@ -21,15 +21,15 @@ extension Path {
}
public class var documentsDir:Path {
- return Path.userDomainOf(.DocumentDirectory)
+ return Path.userDomainOf(.documentDirectory)
}
public class var cacheDir:Path {
- return Path.userDomainOf(.CachesDirectory)
+ return Path.userDomainOf(.cachesDirectory)
}
- private class func userDomainOf(pathEnum:NSSearchPathDirectory)->Path{
- let pathString = NSSearchPathForDirectoriesInDomains(pathEnum, .UserDomainMask, true)[0]
+ fileprivate class func userDomainOf(_ pathEnum:FileManager.SearchPathDirectory)->Path{
+ let pathString = NSSearchPathForDirectoriesInDomains(pathEnum, .userDomainMask, true)[0]
return Path( pathString )
}
@@ -37,19 +37,19 @@ extension Path {
#endif
// Add Dir Behavior to Path by extension
-extension Path: SequenceType {
+extension Path: Sequence {
public subscript(filename: String) -> Path{
- get { return self.content(filename) }
+ get { return self.content(filename as String) }
}
public var children:Array? {
assert(self.isDir,"To get children, path must be dir< \(path_string) >")
assert(self.exists,"Dir must be exists to get children.< \(path_string) >")
var loadError: NSError?
- let contents: [AnyObject]?
+ let contents: [String]?
do {
- contents = try self.fileManager.contentsOfDirectoryAtPath(path_string
+ contents = try self.fileManager.contentsOfDirectory(atPath: path_string
)
} catch let error as NSError {
loadError = error
@@ -60,7 +60,7 @@ extension Path: SequenceType {
}
return contents!.map({ [unowned self] content in
- return self.content(content as! String)
+ return self.content(content)
})
}
@@ -69,15 +69,15 @@ extension Path: SequenceType {
return self.children
}
- public func content(path_string:NSString) -> Path {
+ public func content(_ path_string:String) -> Path {
return Path(
- NSURL(fileURLWithPath: self.path_string)
- .URLByAppendingPathComponent( path_string as String )
- .path!
+ URL(fileURLWithPath: self.path_string)
+ .appendingPathComponent( path_string as String )
+ .path
)
}
- public func child(path:NSString) -> Path {
+ public func child(_ path:String) -> Path {
return self.content(path)
}
@@ -85,7 +85,7 @@ extension Path: SequenceType {
var error: NSError?
let result: Bool
do {
- try fileManager.createDirectoryAtPath(path_string,
+ try fileManager.createDirectory(atPath: path_string,
withIntermediateDirectories:true,
attributes:nil)
result = true
@@ -99,15 +99,15 @@ extension Path: SequenceType {
}
- public func generate() -> AnyGenerator {
+ public func makeIterator() -> AnyIterator {
assert(self.isDir,"To get iterator, path must be dir< \(path_string) >")
- let iterator = fileManager.enumeratorAtPath(path_string)
- return anyGenerator() {
+ let iterator = fileManager.enumerator(atPath: path_string)
+ return AnyIterator() {
let optionalContent = iterator?.nextObject() as! String?
if let content = optionalContent {
return self.content(content)
} else {
- return .None
+ return .none
}
}
}
diff --git a/SwiftFilePath/PathExtensionFile.swift b/SwiftFilePath/PathExtensionFile.swift
index 4442b04..54a4af3 100644
--- a/SwiftFilePath/PathExtensionFile.swift
+++ b/SwiftFilePath/PathExtensionFile.swift
@@ -10,7 +10,7 @@
extension Path {
public var ext:NSString {
- return NSURL(fileURLWithPath:path_string).pathExtension!
+ return URL(fileURLWithPath:path_string).pathExtension as NSString
}
public func touch() -> Result {
@@ -20,12 +20,12 @@ extension Path {
: self.createEmptyFile()
}
- public func updateModificationDate(date: NSDate = NSDate() ) -> Result{
+ public func updateModificationDate(_ date: Date = Date() ) -> Result{
var error: NSError?
let result: Bool
do {
try fileManager.setAttributes(
- [NSFileModificationDate :date],
+ [FileAttributeKey.modificationDate :date],
ofItemAtPath:path_string)
result = true
} catch let error1 as NSError {
@@ -37,7 +37,7 @@ extension Path {
: Result(failure: error!)
}
- private func createEmptyFile() -> Result{
+ fileprivate func createEmptyFile() -> Result{
return self.writeString("")
}
@@ -49,7 +49,7 @@ extension Path {
let read: String?
do {
read = try String(contentsOfFile: path_string,
- encoding: NSUTF8StringEncoding)
+ encoding: String.Encoding.utf8)
} catch let error as NSError {
readError = error
read = nil
@@ -62,14 +62,14 @@ extension Path {
return read
}
- public func writeString(string:String) -> Result {
+ public func writeString(_ string:String) -> Result {
assert(!self.isDir,"Can NOT write data from dir")
var error: NSError?
let result: Bool
do {
- try string.writeToFile(path_string,
+ try string.write(toFile: path_string,
atomically:true,
- encoding: NSUTF8StringEncoding)
+ encoding: String.Encoding.utf8)
result = true
} catch let error1 as NSError {
error = error1
@@ -82,17 +82,17 @@ extension Path {
// MARK: - read/write NSData
- public func readData() -> NSData? {
+ public func readData() -> Data? {
assert(!self.isDir,"Can NOT read data from dir")
- return NSData(contentsOfFile: path_string)
+ return (try? Data(contentsOf: URL(fileURLWithPath: path_string)))
}
- public func writeData(data:NSData) -> Result {
+ public func writeData(_ data:Data) -> Result {
assert(!self.isDir,"Can NOT write data from dir")
var error: NSError?
let result: Bool
do {
- try data.writeToFile(path_string, options:.DataWritingAtomic)
+ try data.write(to: URL(fileURLWithPath: path_string), options:.atomic)
result = true
} catch let error1 as NSError {
error = error1
diff --git a/SwiftFilePath/Result.swift b/SwiftFilePath/Result.swift
index fc0715a..38240dc 100644
--- a/SwiftFilePath/Result.swift
+++ b/SwiftFilePath/Result.swift
@@ -8,68 +8,68 @@
public enum Result {
- case Success(S)
- case Failure(F)
+ case success(S)
+ case failure(F)
public init(success:S){
- self = .Success(success)
+ self = .success(success)
}
public init(failure:F){
- self = .Failure(failure)
+ self = .failure(failure)
}
public var isSuccess:Bool {
switch self {
- case .Success: return true
- case .Failure: return false
+ case .success: return true
+ case .failure: return false
}
}
public var isFailure:Bool {
switch self {
- case .Success: return false
- case .Failure: return true
+ case .success: return false
+ case .failure: return true
}
}
public var value:S? {
switch self {
- case .Success(let success):
+ case .success(let success):
return success
- case .Failure(_):
- return .None
+ case .failure(_):
+ return .none
}
}
public var error:F? {
switch self {
- case .Success(_):
- return .None
- case .Failure(let error):
+ case .success(_):
+ return .none
+ case .failure(let error):
return error
}
}
- public func onFailure(handler:(F) -> Void ) -> Result {
+ public func onFailure(_ handler:(F) -> Void ) -> Result {
switch self {
- case .Success(_):
+ case .success(_):
return self
- case .Failure(let error):
+ case .failure(let error):
handler( error )
return self
}
}
- public func onSuccess(handler:(S) -> Void ) -> Result {
+ public func onSuccess(_ handler:(S) -> Void ) -> Result {
switch self {
- case .Success(let success):
+ case .success(let success):
handler(success )
return self
- case .Failure(_):
+ case .failure(_):
return self
}
}
-}
\ No newline at end of file
+}
diff --git a/SwiftFilePathTests/SwiftFilePathTests.swift b/SwiftFilePathTests/SwiftFilePathTests.swift
index d2bdfbf..9641177 100644
--- a/SwiftFilePathTests/SwiftFilePathTests.swift
+++ b/SwiftFilePathTests/SwiftFilePathTests.swift
@@ -13,14 +13,14 @@ import SwiftFilePath
extension String {
- func match(pattern: String) -> Bool {
+ func match(_ pattern: String) -> Bool {
let matcher: NSRegularExpression?
do {
matcher = try NSRegularExpression(pattern: pattern, options: [])
} catch _ as NSError {
matcher = nil
}
- return matcher?.numberOfMatchesInString(self, options: [], range: NSMakeRange(0, self.utf16.count)) != 0
+ return matcher?.numberOfMatches(in: self, options: [], range: NSMakeRange(0, self.utf16.count)) != 0
}
}
@@ -45,7 +45,7 @@ class SwiftFilePathTests: XCTestCase {
self.sandboxDir.remove()
}
- func locally(x: () -> ()) {
+ func locally(_ x: () -> ()) {
x()
}
@@ -257,8 +257,8 @@ class SwiftFilePathTests: XCTestCase {
for content in sandboxDir {
XCTAssertTrue(content.exists)
- contentCount++
- if( content.isDir ){ dirCount++ }
+ contentCount += 1
+ if( content.isDir ){ dirCount += 1 }
}
XCTAssertEqual( contentCount, 3)
XCTAssertEqual( dirCount, 1)
@@ -300,29 +300,29 @@ class SwiftFilePathTests: XCTestCase {
locally {
let string = "HelloData"
- let data = string.dataUsingEncoding(NSUTF8StringEncoding)
+ let data = string.data(using: String.Encoding.utf8)
let result = binFile.writeData( data! )
XCTAssertTrue( result.isSuccess )
let readData = binFile.readData()
- let readString = NSString(data: readData!, encoding: NSUTF8StringEncoding)!
+ let readString = NSString(data: readData!, encoding: String.Encoding.utf8.rawValue)!
XCTAssertEqual( readString, "HelloData")
}
locally {
let string = "HelloData Again"
- let data = string.dataUsingEncoding(NSUTF8StringEncoding)
+ let data = string.data(using: String.Encoding.utf8)
let result = binFile.writeData( data! )
XCTAssertTrue( result.isSuccess )
let readData = binFile.readData()
- let readString = NSString(data: readData!, encoding: NSUTF8StringEncoding)!
+ let readString = NSString(data: readData!, encoding: String.Encoding.utf8.rawValue)!
XCTAssertEqual( readString, "HelloData Again")
}
locally {
binFile.remove()
- let empty = NSData()
+ let empty = Data()
let readData = binFile.readData() ?? empty
XCTAssertEqual( readData, empty )
}
@@ -431,10 +431,10 @@ class SwiftFilePathTests: XCTestCase {
let result = Result(success:200);
switch result {
- case .Success(let value):
+ case .success(let value):
callOnSuccess = true
print(value)
- case .Failure(let error):
+ case .failure(let error):
callOnFailure = true
print(error)
}
@@ -448,10 +448,10 @@ class SwiftFilePathTests: XCTestCase {
let result = Result(failure: "ERROR!!!");
switch result {
- case .Success(let value):
+ case .success(let value):
callOnSuccess = true
print(value)
- case .Failure(let error):
+ case .failure(let error):
callOnFailure = true
print(error)
}
@@ -460,4 +460,4 @@ class SwiftFilePathTests: XCTestCase {
}
}
-}
\ No newline at end of file
+}