Files
XcodeGen/Sources/XcodeGenKit/Yaml.swift
T

40 lines
1014 B
Swift

//
// YamsExtensions.swift
// XcodeGenKit
//
// Created by Yonas Kolb on 29/9/17.
//
import Foundation
import Yams
import PathKit
func loadYamlDictionary(path: Path) throws -> [String: Any] {
let string: String = try path.read()
if string == "" {
return [:]
}
guard let yaml = try Yams.load(yaml: string) else {
return [:]
}
return filterNull(yaml) as! [String: Any]
}
fileprivate func filterNull(_ object: Any) -> Any {
var returnedValue: Any = object
if let dict = object as? [String: Any] {
var mutabledic: [String: Any] = [:]
for (key, value) in dict {
mutabledic[key] = filterNull(value)
}
returnedValue = mutabledic
} else if let array = object as? [Any] {
var mutableArray: [Any] = array
for (index, value) in array.enumerated() {
mutableArray[index] = filterNull(value)
}
returnedValue = mutableArray
}
return (object is NSNull) ? "" : returnedValue
}