Skip to content

Commit e468faf

Browse files
committed
fix(YAML): adds missing YAML methods for App and Arg
Closes #528
1 parent eb7521a commit e468faf

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/app/mod.rs

+32
Original file line numberDiff line numberDiff line change
@@ -1139,6 +1139,12 @@ impl<'a> From<&'a Yaml> for App<'a, 'a> {
11391139
if let Some(v) = yaml["about"].as_str() {
11401140
a = a.about(v);
11411141
}
1142+
if let Some(v) = yaml["before_help"].as_str() {
1143+
a = a.before_help(v);
1144+
}
1145+
if let Some(v) = yaml["template"].as_str() {
1146+
a = a.template(v);
1147+
}
11421148
if let Some(v) = yaml["after_help"].as_str() {
11431149
a = a.after_help(v);
11441150
}
@@ -1157,20 +1163,46 @@ impl<'a> From<&'a Yaml> for App<'a, 'a> {
11571163
if let Some(v) = yaml["version_short"].as_str() {
11581164
a = a.version_short(v);
11591165
}
1166+
if let Some(v) = yaml["setting"].as_str() {
1167+
a = a.setting(v.parse().ok().expect("unknown AppSetting found in YAML file"));
1168+
}
11601169
if let Some(v) = yaml["settings"].as_vec() {
11611170
for ys in v {
11621171
if let Some(s) = ys.as_str() {
11631172
a = a.setting(s.parse().ok().expect("unknown AppSetting found in YAML file"));
11641173
}
11651174
}
11661175
}
1176+
if let Some(v) = yaml["global_setting"].as_str() {
1177+
a = a.setting(v.parse().ok().expect("unknown AppSetting found in YAML file"));
1178+
}
1179+
if let Some(v) = yaml["global_settings"].as_vec() {
1180+
for ys in v {
1181+
if let Some(s) = ys.as_str() {
1182+
a = a.global_setting(s.parse().ok().expect("unknown AppSetting found in YAML file"));
1183+
}
1184+
}
1185+
}
1186+
if let Some(v) = yaml["alias"].as_str() {
1187+
a = a.alias(v);
1188+
}
11671189
if let Some(v) = yaml["aliases"].as_vec() {
11681190
for ys in v {
11691191
if let Some(s) = ys.as_str() {
11701192
a = a.alias(s);
11711193
}
11721194
}
11731195
}
1196+
if let Some(v) = yaml["visible_alias"].as_str() {
1197+
a = a.visible_alias(v);
1198+
}
1199+
if let Some(v) = yaml["visible_aliases"].as_vec() {
1200+
for ys in v {
1201+
if let Some(s) = ys.as_str() {
1202+
a = a.visible_alias(s);
1203+
}
1204+
}
1205+
}
11741206
if let Some(v) = yaml["args"].as_vec() {
11751207
for arg_yaml in v {
11761208
a = a.arg(Arg::from_yaml(&arg_yaml.as_hash().unwrap()));

src/args/arg.rs

+3
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ impl<'a, 'b> Arg<'a, 'b> {
155155
"index" => a.index(v.as_i64().unwrap() as u64),
156156
"global" => a.global(v.as_bool().unwrap()),
157157
"multiple" => a.multiple(v.as_bool().unwrap()),
158+
"hidden" => a.hidden(v.as_bool().unwrap()),
159+
"next_line_help" => a.next_line_help(v.as_bool().unwrap()),
158160
"empty_values" => a.empty_values(v.as_bool().unwrap()),
159161
"group" => a.group(v.as_str().unwrap()),
160162
"number_of_values" => a.number_of_values(v.as_i64().unwrap() as u64),
@@ -165,6 +167,7 @@ impl<'a, 'b> Arg<'a, 'b> {
165167
"value_delimiter" => a.value_delimiter(v.as_str().unwrap()),
166168
"required_unless" => a.required_unless(v.as_str().unwrap()),
167169
"display_order" => a.display_order(v.as_i64().unwrap() as usize),
170+
"default_value" => a.default_value(v.as_str().unwrap()),
168171
"value_names" => {
169172
for ys in v.as_vec().unwrap() {
170173
if let Some(s) = ys.as_str() {

0 commit comments

Comments
 (0)