svenfuchs/cl

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
# Changelog

## 1.2.4 (2020-01-18)

* Make auto-registration optional, but on by default

## 1.2.3 (2020-01-17)

* Bring back auto regisration (broke dpl)

## 1.2.2 (2020-01-17)

* Do not auto-register commands by default

## 1.2.1 (2020-01-14)

* Fix calling const.include on older Ruby versions

## 1.2.0 (2020-01-14)

* Enforce declaring arguments
* Allow optional strings on long opts
* Define arg accessor on an included module so it can be overwritten
* Inherit args from parent commands
* Do not raise on empty splats
* Allow args to have defaults
* Allow args to be enums
* Define predicate methods for args
* Make flag values an optional feature
* List multiple usage lines if a command has multiple registry keys
* Sort options by class hierarchie
* Do not try to cast nil values to integers

## 1.1.3 (2019-09-02)

* Rescue OptionParser::InvalidOption, suggest known options

## 1.1.2 (2019-09-02)

* Fix deprecations for underscored keys

## 1.1.1 (2019-08-26)

* Fix an issue in opt.deprecated?(name)

## 1.1.0 (2019-08-26)

* Add suggestions on unknown cmds and enums
* Validate option options

## 1.0.5 (2019-08-18)

### Fixed

* Fix an issue with alias names that contain the aliased name

## 1.0.4 (2019-08-15)

### Fixed

* Fix enum when used with `type: :array`

## 1.0.3 (2019-08-11)

### Added

* Allow clients to configure Ctx so that it does not abort but raise on errors

## 1.0.2 (2019-08-11)

### Fixed

* Fix that validation for `opt '--one STR', requires: :other, default: 'one'` would fail if the option was not given

## 1.0.1 (2019-08-11)

### Added

* Add `opt '--one STR', upcase: true`

## 1.0.0 (2019-08-10)

### Added

* Add config, reading from env vars and yml files (inspired by gem-release)
* Add `abstract` in order to signal a cmd is a base class that is not meant to be executed
* Add `examples` in order to add examples for the command to the help output
* Add `required :one, [:two, :three]` (DNF, i.e: either `:one` or both `:two` and `:three` must be given)
* Add `opt '--one STR', type: :array` for options that can be given multiple times
* Add `opt '--one STR', default: 'one'`
* Add `opt '--one STR', requires :two` or `[:two, :three]` for options that depend on other options
* Add `opt '--one', alias: :other`
* Add `opt '--one', deprecated: 'message'`, and `cmd.deprected_opts`, so clients can look up which deprecated options were used
* Add `opt '--one', alias: :other, deprecated: :other`, so that `cmd.deprecated_opts` returns the alias name if it was used
* Add `opt '--int INT', min: 10, type: :integer`
* Add `opt '--int INT', max: 10, type: :integer`
* Add `opt '--one STR', format: /.+/`
* Add `opt '--one STR', enum: ['one', /\w+/]`
* Add `opt '--one STR', downcase: true`
* Add `opt '--one STR', internal: true`, hide internal options from help output
* Add `opt '--one STR', example: 'foo'`
* Add `opt '--one STR', negate: %w(skip)`
* Add `opt '--one STR', note: 'note'`
* Add `opt '--one STR', see: 'https://provider.com/docs'
* Add `opt '--one STR', secret: true`

### Changed

* Much improved help output, modeled after rubygems' help output
* Cl is now a class
* Use the regstry gem, remove the local Registry implementation
* If a flag (boolean option) has a default `true` automatically add `[no-]` to it, allowing to opt out
* Runners are now registered in order to make them more easily extendable

### Removed

* Removed cmd.defaults, options have default: [value] now

## 0.0.4 (2017-08-02)

* Ancient history

## 0.0.3 (2017-08-02)

* Ancient history

## 0.0.2 (2017-04-09)

* Ancient history

## 0.0.1 (2017-04-08)

* Ancient history