module Athena::Config

Overview

Athena's Config component contains common types for configuring a component.

Currently the two primary types are ACF::Base, and ACF::ConfigurationResolver. ACF::Base represents the structure of Athena's YAML configuration file. ACF::ConfigurationResolver allows resolving the configuration for a given component within a service. See each specific type for more detailed information.

Defined in:

athena-config.cr

Constant Summary

CONFIG_PATH_NAME = "ATHENA_CONFIG_PATH"

The name of the environment variable that stores the path to the configuration file.

DEFAULT_CONFIG_PATH = "./athena.yml"

The default path to the configuration file.

VERSION = "0.1.0"

Class Method Summary

Class Method Detail

def self.config : ACF::Base #

Returns the ACF::Base object instantiated from the configuration file located at .config_path.

The contents of the configuration file are included into the binary at compile time so that the file itself does not need to be present for the binary to run. The configuration string is not processed until .config is called for the first time so that in the future it will respect ENV vars for the environment the binary is in.

TODO Handle resolving ENV vars and DI parameters within the configuration file.


[View source]
def self.config_path : String #

Returns the current path that the configuration file is located at.

Falls back on DEFAULT_CONFIG_PATH if a ATHENA_CONFIG_PATH ENV variable is not defined.


[View source]