Bugfixes:
Bump minimal Ruby version to 2.5.
Documentation:
Change URLs to Sourcehut/ability.guide
Fix license years, README title
(Yanked due to inaccurate minimum Ruby version)
Bugfixes:
Remove old command that depended on Trollop
Enhancements:
Add a predicate setting option
Add a test for declaring helper methods inside a settings block
Add after-configure hooks to execute a block after the configuration has been loaded
Enhancements:
Declare the class/class-instance variable when declaring a setting
Add a 'defaults' subcommand to the configurability executable
Enhancements:
Add an option to use class variables for settings instead of class-instance variables.
Bugfixes:
Update the README to point out that the setting block needs to handle the default value.
Bugfix:
Always use the pre-processor block for defaults.
Bugfix:
Fix inheritance of defaults when declared using settings
Enhancement:
Add optional pre-processor block to setting
s.
Enhancement:
Add hierarchical config keys
Add a DSL for setting up settings and defaults
Add a better default configure method
Added signature for changeset 806d1f512f55
Fix the merge used by Configurability.gather_defaults
It should now correctly merge top-level sections together.
Make configuration source logging log at a consistent level.
Update shared behavior to work under RSpec 3.0.0.
Add a .default_config method to objects with Configurability
.
Symbolify keys of defaults for Configurability::Config.new
(fixes #3).
Fix untainting to not try to dup/untaint immediate objects. Thanks to john@cozy.co for the bug report.
Fix behavior of inherited Configurability
Convert specs to use RSpec expect syntax
Drop support for Ruby 1.8.7.
Added signature for changeset e53b53d65079
Load YAML safely if the safe_yaml gem is present.
Repair relationship with Loggability.
Make missing Configurability::Config
values return nil instead of auto-vivifying to a Struct.
This is not a backward-compatible change, but in practice, far more work was done to detect non-existant values than was saved by the debatable convenience of being able to auto-create nested structs.
Update to loggability 0.4 and add Rubinius (1.9-mode) fixes.
Added a command-line utility.
Convert logging to use Loggability.
Add a 'defaults' API that allows defaults to be gathered from any object with configurability and merged into a hash keyed by the object's config_key. This hash can be used to generate an initial unified config file for all configurable parts of a given system.
Fix log level message.
Fix problems associated with inheritance.
Added a Hash of configure methods that have already been called as pairs of Methods and Config sections. (Configurability.configured)
Use the configured
hash to avoid re-calling configure with the same config section more than once when a class with Configurability
is inherited.
Configurability.install_config
– Only use the index operator method of the config object if it actually has the config_key as a key. Else configure with nil
.
Support different whitespace conventions in different YAML libraries
Thanks to Mahlon E. Smith for reporting this bug, and for pairing with me to fix it.
Fix for Ruby 1.9.3-p0.
De-Yard and fix some other documentation/packaging issues.
Bugfixes:
Fixed predicate methods for missing sections/values, which previously returned true
as well.
Bugfixes:
Now handles config files with nil keys correctly.
Packaging fix.
Enchancements:
Propagate the installed config to objects that add Configurability
after the config is loaded.
Bugfixes:
Fixes for specs under 1.9.2.
Enhancements:
Adding a Configurability::Config
class for YAML config loading.
Add an rspec shared behavior for testing classes with Configurability
Converted tests to RSpec 2.
Initial release