# Change log ## [v0.6.0] - 2022-06-18 ### Added * Add the ability to persist configuration settings in an XML format ### Changed * Change the INI file format generator to improve maintainability * Change gemspec to update toml version constraint ## [v0.5.1] - 2022-02-04 ### Fixed * Fix reading configuration from an INI file without global properties * Fix reading an empty config file with hcl extension to return an empty hash ## [v0.5.0] - 2021-05-23 ### Added * Add :create option to the #write method to control creating any missing directories * Add :path option to the #write method to specify a custom file path to write to * Add ability to specify a default value for a missing key in the #delete method * Add #env_separator for setting a string to separate parts in environment variable name ### Changed * Change #delete to allow removing any subkey of a deeply nested key * Change #remove to require from keyword * Change #set_if_empty to use nested key fetching to check for value presence ### Fixed * Fix Marshaller interface to copy extension names to a subclass ## [v0.4.0] - 2020-01-25 ### Added * Add DependencyLoader for a generic interface for loading marshalling dependencies * Add Marshaller as a generic interface for building marshalling plugins * Add MarshallerRegistry for storing all marshallers * Add Marshallers to allow configuration of marshallers via #register_marshaller & #unregister_marshaller ### Changed * Change #initialize to accept hash as settings * Change #marshal & #unmarshal to use marshalling plugins * Change gemspec to add metadata and remove test artefacts ## [v0.3.2] - 2019-06-18 ### Changed * Change to relax development dependency versions ### Fixed * Fix #read to allow reading empty files ## [v0.3.1] - 2019-01-24 ### Fixed * Fix references to File class constant by Taylor Thurlow (@taylorthurlow) ## [v0.3.0] - 2018-10-20 ### Added * Add #set_from_env for binding keys to environment variables * Add #env_prefix for setting environment variables prefix * Add #autoload_env for loading all environment variables * Add #generate for generating file content from the settings * Add #alias_setting for aliasing settings * Add ability to read & write INI file types ### Changed * Change #fetch to read environment variables before defaults * Change #fetch to handle aliased settings * Change to remove stdout output when dependency cannot be loaded * Change to allow for config files without any extension ## [v0.2.0] - 2018-05-07 ### Added * Add ability to validate values for arbitrarily nested keys ### Changed * Change to ensure that either value or block is provided when setting a value ## [v0.1.0] - 2018-04-14 * Initial implementation and release [v0.6.0]: https://github.com/piotrmurach/tty-config/compare/v0.5.1...v0.6.0 [v0.5.1]: https://github.com/piotrmurach/tty-config/compare/v0.5.0...v0.5.1 [v0.5.0]: https://github.com/piotrmurach/tty-config/compare/v0.4.0...v0.5.0 [v0.4.0]: https://github.com/piotrmurach/tty-config/compare/v0.3.2...v0.4.0 [v0.3.2]: https://github.com/piotrmurach/tty-config/compare/v0.3.1...v0.3.2 [v0.3.1]: https://github.com/piotrmurach/tty-config/compare/v0.3.0...v0.3.1 [v0.3.0]: https://github.com/piotrmurach/tty-config/compare/v0.2.0...v0.3.0 [v0.2.0]: https://github.com/piotrmurach/tty-config/compare/v0.1.0...v0.2.0 [v0.1.0]: https://github.com/piotrmurach/tty-config/compare/19cd277...v0.1.0