summaryrefslogtreecommitdiff
path: root/mixlib-cli.gemspec
diff options
context:
space:
mode:
authorMarc A. Paradise <marc.paradise@gmail.com>2019-06-04 16:04:11 -0400
committerMarc A. Paradise <marc.paradise@gmail.com>2019-06-06 12:50:47 -0400
commit145ba5f6cdccbb0775d5a65885b80705bc9fa87a (patch)
tree9826e068d6c14965dccd67406fbd656700b205d6 /mixlib-cli.gemspec
parentae6e7e581520f81e048267f73d3ce43402886ba5 (diff)
downloadmixlib-cli-145ba5f6cdccbb0775d5a65885b80705bc9fa87a.tar.gz
[MIXLIB-CLI-63] Add deprecated_option support
This commit adds deprecated option support by exposing a new ClassMethod, `deprecated_option`. It will generate a corresponding deprecated option, and if that option is used it will handle mapping of the old option to the new and issue a warning. `deprecated_option` accepts a subset of the parameters that `option` accepts. Most importantly, a deprecated option can't have a default value. There's a practical reason for this and a philosophical one. Practically, it makes it easy to track the situation where someone has set `use_separate_defaults` to `false`. In that case, we currently can't tell whether the user provided the flag, or it was set as a default. This could have been addressed, but: Philosphically it makes more sense to not have a default value on a deprecated item. If it's deprecated, you want people to stop using it. If it has a default, it's effectively forced in-use at all times. See function docs for further accepted parameters. To allow deprecated options without warnings, use parse_options as `parse_options(ARGV, show_deprecations: false)`. By default, warnings will be shown. This also moves some formatting code into its own class - it was causing methods to get mixed in that client classes didn't need; and I reached the point where I needed to access the formatting functions across methods in both Mixlib::CLI and Mixlib::CLI::ClassMethods. It made more sense to move them outside of the mixed-in bits, since it wasn't a concern of the caller that would be inheriting those methods. Signed-off-by: Marc A. Paradise <marc.paradise@gmail.com>
Diffstat (limited to 'mixlib-cli.gemspec')
0 files changed, 0 insertions, 0 deletions