Commit graph

169 commits

Author SHA1 Message Date
Kevin K
0d123a0d86 docs(clap): update docs 2015-04-30 20:13:01 -04:00
Kevin K
53f6b8c9d8 feat(MultipleValues): add support for minimum and maximum number of values 2015-04-30 19:32:51 -04:00
Kevin K
ae09f05e92 feat(MultipleValues): adds support limited number and named values 2015-04-30 18:02:19 -04:00
Kevin K
6669f0a968 feat(MultipleValues): implement shorthand for options with multiple values 2015-04-30 15:11:12 -04:00
Kevin K
d77048efb1 feat(usage): implement smart usage strings on errors
Closes #88
2015-04-30 12:12:44 -04:00
Kevin K
0cc2f69839 feat(arg): allow other types besides Vec for multiple value settings
Breaking Change

Instead of requiring a Vec<&str> for various Arg::*_all() and
Arg::possible_values() methods this
commit now requires a generic IntoIterator<Item=AsRef<str>> which allows
things such as constant arrays. This change requires that any
Arg::*_all() methods be changed from vec!["val", "val"] -> let vals =
["val", "val"]; some_arg.possible_values(&vals) (or vals.iter()).

Closes #87
2015-04-29 17:52:13 -04:00
Kevin K
1c92ed0e72 chore(docs): change makefile -> travis auto cargo doc and upload 2015-04-28 23:18:08 -04:00
Kevin K
ad4e545107 fix(from_usage): removes bug where usage strings have no help text
Creating arguments from usage strings with no help text previously
dropped the final character i.e. --flags -> --flag
This commit fixes that issue by testing if we are at the end of the
string

Closes #83
2015-04-28 22:11:20 -04:00
Kevin K
60c1b307ac docs(groups): adds documentation for ArgGroups 2015-04-27 22:52:50 -04:00
Kevin K
4bb4c3cc07 fix(RequiredArgs): required by default args should no longer be required when their exclusions are present 2015-04-27 00:53:12 -04:00
Kevin K
09eb4d9893 feat(ArgGroups): add ability to create arg groups 2015-04-27 00:53:12 -04:00
Kevin K
cfffb45aa4 style(clap): clean commented out code 2015-04-25 23:55:42 -04:00
Kevin K
17e3f141aa refactor(args.rs): deprecate mutually_excludes* for conflicts_with* methods 2015-04-25 22:59:02 -04:00
Kevin K
1e25abfc36 fix(help): change long help --long=long -> --long <long> 2015-04-25 22:19:09 -04:00
Kevin K
fd61615d1a perf(matchedargs): remove unused vars and String->&str
This commit increases the performance a bit by using string slices
instead of owned strings. The trade off is that code previously written
to handle all the argument parsing in a speratate function and return
only the ArgMatches must be re-written to add a lifetime specifier:

Old code 'fn handle_args<'a>() -> ArgMatches<'a>' needs another lifetime
specifier added, so now 'fn handle_args<'a, 'b>() -> ArgMatches<'a, 'b>'

BREAKING CHANGE
2015-04-25 11:12:07 -04:00
Kevin K
b76129e9b7 fix(from_usage): fix bug causing args to not be required 2015-04-22 16:08:34 -04:00
Kevin K
d7c724dc65 tests(usage): fix typo in test variable names 2015-04-22 11:23:15 -04:00
Kevin K
dc59b12eb0 refactor(app.rs): rename more_help()->after_help() 2015-04-20 19:55:09 -04:00
Kevin K
65cc259e45 feat(apps): add ability to display additional help info after auto-gen'ed help msg 2015-04-19 20:19:21 -04:00
Kevin K
bb9d0c377e tests(from_usage): add tests for usage strings with tabs 2015-04-19 14:31:56 -04:00
Kevin K
4fd44181d5 fix(from_usage): tabs and spaces should be treated equally 2015-04-19 14:27:05 -04:00
Kevin K
c630969aa3 feat(macros.rs): add macro to get version from Cargo.toml 2015-04-19 14:22:03 -04:00
Kevin K
86e4075eb1 fix(macros.rs): fix use statements for trait impls 2015-04-18 22:23:18 -04:00
Kevin K
e7f77353b9 refactor(macros.rs): improve trait implmentation readability 2015-04-18 22:20:43 -04:00
Kevin K
31b476ca99 refactor(arg.rs): remove deprecation warnings for stable rustc 2015-04-18 13:37:01 -04:00
Kevin K
14d810d072 refactor(clap): restructure matched args for performance and deduplication 2015-04-17 17:11:10 -04:00
Kevin K
2c499f8015 feat(macros): add ability to create enums pub or priv with derives
Err type of FromStr trait changed from &'a str->String in order
to allow showing valid values on failed parse

Breaking Change
2015-04-17 11:17:19 -04:00
Kevin K
fb672aff56 feat(macros): add macro to create custom enums to use as types 2015-04-16 14:21:32 -04:00
Kevin K
1a192521b6 docs(clap): fix typo core->std 2015-04-16 12:53:05 -04:00
Kevin K
d126cfdc69 chore(clap): rebuild docs with nightly rustdoc 2015-04-14 16:18:07 -04:00
Kevin K
4057d34d93 docs(macros): add documentation covering value_t! and value_t_or_exit 2015-04-14 15:16:16 -04:00
Kevin K
0b87251fc0 feat(macros): add ability to get mutliple typed values or exit 2015-04-14 14:33:37 -04:00
Kevin K
e243fe38dd feat(macros): add ability to get a typed multiple values 2015-04-14 14:07:33 -04:00
Kevin K
4b7cd3ea49 feat(macros): add convenience macro to get a typed value or exit 2015-04-14 13:37:35 -04:00
Kevin K
8752700fbb feat(macros): add convenience macro to get a typed value 2015-04-14 12:14:17 -04:00
Kevin K
b67f2e537e docs(clap): fix failing doc tests 2015-04-13 22:26:41 -04:00
Kevin K
b389743672 docs(clap): improve examples and documentation as well as include new from_usage() features 2015-04-13 22:18:50 -04:00
Kevin K
91d2904599 fix(from_usage): trim all whitespace before parsing 2015-04-13 18:05:12 -04:00
Kevin K
3710cd6916 fix(tests): fix failing doc tests 2015-04-13 15:03:22 -04:00
Kevin K
d5d48bcf46 feat(app): add support for building args from usage strings 2015-04-13 14:32:27 -04:00
Kevin K
ab409a8f1d feat(args): add ability to create basic arguments from a usage string 2015-04-13 13:31:14 -04:00
Kevin K
3d960e8be0 docs(clap): clean up docs and add better explainations 2015-04-10 19:21:34 -04:00
Kevin K
dcbadc6275 perf(usage): remove compiler warnings and dedup some code 2015-04-10 11:50:08 -04:00
Kevin K
3636afc401 feat(usage): add ability to get usage string for subcommands too
You can now get the usage even for sub-commands by calling the
usage() method.

Breaking Change
ArgMatches::usage() now returns a slice (no longer an Option<&str>)
This is to improve ergonomics, as there should always be at least a
default usage statement, there should never be None
2015-04-10 10:49:12 -04:00
Kevin K
5137278942 fix(usage): remove unneeded space 2015-04-09 21:43:26 -04:00
Kevin K
ba817b9d81 fix(usage): remove warning about unused variables 2015-04-09 19:53:13 -04:00
Kevin K
e2488e50e4 tests(subcommand help): change to new usage generation known good 2015-04-09 18:39:29 -04:00
Kevin K
02462150ca feat(ArgMatches): add method to get default usage string 2015-04-09 18:18:51 -04:00
Kevin K
64e539280e feat(SubCommands): add method to get name and subcommand matches together 2015-04-09 17:07:28 -04:00
Kevin K
042577d254 refactor(app.rs): remove unneeded hashmap use statement 2015-04-05 20:25:03 -04:00