From de3a9b7f68e1f1b368630f498dd338d8b50444c8 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 6 Apr 2016 12:55:56 -0400 Subject: build_alias: Remove [,'"] characters Make the function a bit more DRY by taking the `push_str` calls out of the `if` block. Add a new test and some code to remove commas and quotes from aliases. --- src/main.rs | 17 +++++++++++------ src/tests.rs | 5 +++++ 2 files changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 2a0a471..1f3ff29 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,18 +16,23 @@ fn build_alias(s: &str) -> String { split.remove(0); let mut alias_line = String::from("alias "); + let mut alias = String::new(); if split.len() == 1 { - alias_line.push_str(&format!("{} ", split[0].to_lowercase())); - alias_line.push_str(&split.join(" ")) + alias = format!("{} ", split[0].to_lowercase()); } else if split.len() == 2 { - alias_line.push_str(&format!("{} ", split[0].to_lowercase())); - alias_line.push_str(&split.join(" ")); + alias = format!("{} ", split[0].to_lowercase()); } else if split.len() > 2 { - alias_line.push_str(&format!("{}-{} ", split[split.len() - 2], split[0]).to_lowercase()); - alias_line.push_str(&split.join(" ")); + alias = format!("{}-{} ", split[split.len() - 2], split[0]).to_lowercase(); } + alias = alias.replace(',', ""); + alias = alias.replace('\'', ""); + alias = alias.replace('"', ""); + + alias_line.push_str(&alias); + alias_line.push_str(&split.join(" ")); + alias_line } diff --git a/src/tests.rs b/src/tests.rs index eff385a..f5fb57f 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -21,4 +21,9 @@ fn test_build_alias() { "alias lab-harvard Harvard Innovation Lab ", build_alias("From: Harvard Innovation Lab ") ); + + assert_eq!( + "alias celty-ostrulson \"O'Strulson, Celty\" ", + build_alias("From: \"O'Strulson, Celty\" ") + ); } -- cgit v1.2.3