Releasing to Maven Central in addition to Bintray. This is probably the only
really externally visible change.
⬆️ Upgraded a bunch of dependencies, including gradlew.
- gradle -> 4.5.1
- dokka -> = 0.9.16
- gradle_bintray -> = 1.8.0
- gradle_release -> = 2.6.0
- kotlin -> 1.2.30
- xenocom -> 0.0.6
mainBodyis null, then the
📜 system property
com.xenomachina.argparser.programNameis used, if set.
parseIntomethod can be used as an inline alternative to
All instances of
progNamehave been renamed to
⚡️ The gradle wrapper has been updated.
📜 Issue #14 —
previously, automatic option naming would turn "camelCase" into
"--camelCase". Now it is converted to "--camel-case".
Likewise, positinal argument auto-naming used to convert "camelCase" into
"CAMELCASE". Now it is converted to "CAMEL-CASE".
👌 Improve help formatting w/long program names
README formatting improved.
📜 Issue #17 —
specifying 0 for the columns should format help without line wrapping.
Previously, this did not work as documented, and would instead wrap text in
very narrow columns.
📜 Issue #15
— make it possible to specify 'argName' on all variants of 'storing' and
ArgParser.optionis now a public method, so it's possible to create many
🆕 new option types that were not previously possible. The existing option types
are all written in terms of
option, so they can be used to get an idea of
how it works.
✅ More tests have been added.
Started using keepachangelog.com format for CHANGELOG.md
🚀 Made minor improvements to release process
their parameters slightly reordered to be consistent with the other methods.
This is an incompatible change. The name(s) come first, if any, followed by
help. Other parameters appear after
help, with the
if any, last. It is recommended that clients either pass the transform as a
block (ie: with braces) or as a named parameter, as any future new parameters
will necessarily change its position in the list.
Delegate and DelegateProvider are now abstract classes with internal
constructors. This makes it much easier for me to separate internal and
public parts of their API. This is an incompatible change, however it
shouldn't really affect you unless you were trying to implement
👍 which was't supported to begin with.
defaultmethods on both
DelegateProviderare now extension
methods. This makes it possible to generalize the type when adding a
0️⃣ default. This is most noticable when using a nullable value (or
0️⃣ itself) for the default, though may also be useful in other cases (eg: a
0️⃣ "storing" that always produces a
Rectangle, but you want the default to be
Circle. The resulting delegate will be a
Registration of delegates now takes place at binding-time rather than
construction time. This should be pretty indistinguishable from the old
behavior unless you're creating delegates without binding them.
Help formatting has been improved so that it's far less likely to wrap option
names in the usage table.
🛠 There have been numerous bugfixes, particularly around positionals
Auto-naming of options and positionals.
- Each of the ArgParser methods that takes names and returns a Delegate has an overload that takes no name, but returns a DelegateProvider.
- A DelegateProvider has an
operator fun provideDelegatethat returns a Delegate, using a name derived from the name of the property the DelegateProvider is being bound to.
addValidtatoris now deprecated. Use
✂ Removed documentation of
README.md, as it is internal
Corrected spelling of
addValidtatoris still there, but deprecated. It'll probably be removed in the next release, barring the addition of potato functionality.
- ⬆️ Upgrade to Kotlin 1.1, extract xenocom package.