Classes
The following classes are available globally.
-
A one-stop shop to aggregate configuration properties from different sources, including command-line arguments, environment variables, files, URLs and raw objects into a single configuration store. Once the store has been populated configuration data can be accessed and retrieved for an individual value, or multiple values, resources can also be removed.
Usage Example
import Configuration let manager = ConfigurationManager() manager.load(file: "config.json").load(.environmentVariables)
To get configuration values after they have been loaded, use:
manager["path:to:configuration:value"]
The configuration store is represented as a tree, where the path elements in keys are delimited by colons (
:
). The value returned is typed asAny?
, therefore it’s important to cast the value to the type you want to use.When aggregating configuration data from multiple sources, if the same configuration key exists in multiple sources the one most recently loaded will override those loaded earlier. In the example below the value for
foo
is nowbaz
because["foo": "baz"]
was more recently loaded than["foo": "bar"]
. The same behaviour applies to all otherload
functions.
See moremanager.load(["foo": "bar"]).load(["foo": "baz"])
Declaration
Swift
public class ConfigurationManager
-
Default JSON deserializer implementation.
Deserializes JSON formatted data using Foundation’s JSONSerialization class.
See moreDeclaration
Swift
public class JSONDeserializer: Deserializer
-
Default PLIST deserializer implementation.
Deserializes PLIST formatted data using Foundation’s PropertListSerialization class.
See moreDeclaration
Swift
public class PLISTDeserializer: Deserializer