Yaml
Since v2.1.0
Arkenv support the yaml file format.
This functionality is located in a separate module arkenv-yaml.
Add it as a dependency in your build.gradle.
compile "com.apurebase:arkenv-yaml:$arkenv_version"
Install the YamlFeature and specify the file to load from.
Usage
class Ark : Arkenv(configuration = {
    +YamlFeature("config")
}) {
    val mysqlPassword: String by argument()
}
Arkenv will look for the file in the resources.
Like with environment variables, Arkenv will look for the snake-case version of any double-hyphen names.
An example yaml file config.yml could have the following content:
mysql_password : JKE9ehnEA
Nested keys will be concatenated using an underscore _.
Arrays will be parsed as a comma-separated string.
Profiles
The yaml feature can also be used together with the profile feature to load yaml source files. Specify additional parsers in the constructor.
class Ark : Arkenv("Example", configureArkenv {
    +ProfileFeature(parsers = listOf(::YamlFeature))
}) {
    ...
}
For further information see Profiles.
Customization
Locations
By default, Arkenv will look for profiles in the following relative locations on both the classpath and the file system:
- /
- /config
You can add additional locations by using the location argument, which accepts a comma-separated list of directory locations or file paths.
- Argument: --arkenv-property-location
- Env var: ARKENV_PROPERTY_LOCATION
- Code: PropertyFeature(locations = listOf("./path/"))