     /// - parameter components:  Path components.
     ///
     /// - returns:  Path built from components.
-    static func join(_ components: [String]) -> String{
+    public static func join(_ components: [String]) -> String{
         return NSString.path(withComponents: components)
     }
 


import Foundation

enum PathElements {
    /// A directory. e.g. "/var/home"
    case dir


    /// - parameter elements:  A dictionary of named elements and their values.
    ///
    /// - returns:  A path built from the given elements.
    public static func format(_ elements: [PathElements: String?]) -> String {
        var path = ""

        if let dir = elements[.dir] as? String {
