Add factory methods for config loading options

This commit is contained in:
Alexandr Goncharov 2020-06-10 03:24:46 +03:00
parent 350f7b0704
commit 888f7b4068
2 changed files with 29 additions and 1 deletions

View File

@ -0,0 +1,28 @@
import Foundation
public extension Config {
func load(env filename: String) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.file(filename), parser: Parser.donEnv))
}
func load(env data: Data) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.direct(data), parser: Parser.donEnv))
}
func load(json filename: String) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.file(filename), parser: Parser.json))
}
func load(json data: Data) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.direct(data), parser: Parser.json))
}
func load(plist filename: String) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.file(filename), parser: Parser.plist))
}
func load(plist data: Data) throws {
try load(from: CommonConfigurationProvider(loader: Fetcher.direct(data), parser: Parser.plist))
}
}

View File

@ -4,7 +4,7 @@ import Foundation
enum Fetcher { }
extension Fetcher {
static let direct: (Data) -> CommonConfigurationProvider.Fetcher = { data in
return { data }
}