Skip to content

v2.0.0

Compare
Choose a tag to compare
@nvzqz nvzqz released this 25 Nov 00:17
· 124 commits to develop since this release

Release Notes

Important:

  • The 'FK' prefix for FileKit types has been removed in an effort to make the library less cumbersome and more "Swifty" to use. 🔶
  • FileType is no longer a protocol for files. It is now an enumeration of types that a given file can be. The File class is now the standard form of interacting with files.

New Features

  • FileKit enumeration to get info regarding the current version of FileKit

  • tvOS support 📺

  • DirectoryEnumerator struct to enumerate through the files in a directory.

  • Settable path extension

  • A path's children can now be obtained recursively

    let allFilesInHome = Path.UserHome.children(recursive: true)
  • String and Path concatenation with the + operator

  • A changeDirectory(_:) to Path that changes the process' current working
    directory to self

    Path.UserDesktop.changeDirectory {
        print(Path.Current)  // "/Users/nvzqz/Desktop"
    }
  • Getting a common ancestor between two paths with the <^> operator and commonAncestor(_:) method

  • Getting a resolved path with the * postfix operator

  • Getting an NSFileHandle for a File or Path

  • Path now conforms to SequenceType

    // Prints all of the paths in the user's home directory
    for path in Path.UserHome {
        print(path)
    }
  • Static readFromPath(_:) method for Readable types that returns Self

  • Path now conforms to StringInterpolationConvertible, which acts in the same way regular String interpolation works.

    let filePath: Path = "~/Desktop/File \(2)"
    print(filePath.rawValue)  // "~/Desktop/File 2"
  • A find method with a search depth that maps a function on each path found and returns the non-nil results.

    let documents = Path.UserDocuments.find(searchDepth: 1) { String($0) }
  • Initializers for NSString and NSBundle that take a Path

  • Getting an NSStream for a File or Path

  • File now conforms to Comparable according to size

  • FilePermissions struct for seeing the permissions of the current process for a given file.

    let swift: Path = "/usr/bin/swift"
    print(swift.filePermissions)  // FilePermissions[Read, Execute]

Changes

  • Removed 'FK' prefix from FileKit types in an effort to make the library more Swifty
  • Removed FileType as a protocol for files
    • FileType is now an enumeration of types that a file can be.
    • File is now the standard way of interacting with files
  • Renamed FKError to FileKitError
  • Changed error parameters 'fromPath' and 'toPath' to 'from' and 'to' respectively
  • Changed the postfix operator to % for standardizing path
  • Renamed findPaths method to find for Path
  • Changed path url property to URL and made it non-optional
  • The find method now has -1 as its default searchDepth
  • writable property for WritableConvertible is now non-optional
  • Fix + operator implementation