39 lines
785 B
Swift
39 lines
785 B
Swift
import Foundation
|
|
import PathKit
|
|
|
|
|
|
// A class for loading a template from disk
|
|
public class TemplateLoader {
|
|
public let paths: [Path]
|
|
|
|
public init(paths: [Path]) {
|
|
self.paths = paths
|
|
}
|
|
|
|
public init(bundle: [NSBundle]) {
|
|
self.paths = bundle.map {
|
|
return Path($0.bundlePath)
|
|
}
|
|
}
|
|
|
|
public func loadTemplate(templateName: String) -> Template? {
|
|
return loadTemplate([templateName])
|
|
}
|
|
|
|
public func loadTemplate(templateNames: [String]) -> Template? {
|
|
for path in paths {
|
|
for templateName in templateNames {
|
|
let templatePath = path + Path(templateName)
|
|
|
|
if templatePath.exists {
|
|
if let template = try? Template(path: templatePath) {
|
|
return template
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
}
|