diff options
| -rw-r--r-- | src/main.rs | 22 | ||||
| -rw-r--r-- | src/tests.rs | 10 | 
2 files changed, 31 insertions, 1 deletions
| diff --git a/src/main.rs b/src/main.rs index 92ea8e1..2a0a471 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,27 @@ fn handle_alias(s: &str) {  }  fn build_alias(s: &str) -> String { -    String::from("String") +    // Replace , ' " with nothing + +    let mut split: Vec<&str> = s.split_whitespace().collect(); + +    // Remove "From: " +    split.remove(0); + +    let mut alias_line = String::from("alias "); + +    if split.len() == 1 { +        alias_line.push_str(&format!("{} ", split[0].to_lowercase())); +        alias_line.push_str(&split.join(" ")) +    } else if split.len() == 2 { +        alias_line.push_str(&format!("{} ", split[0].to_lowercase())); +        alias_line.push_str(&split.join(" ")); +    } 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_line  }  fn main() { diff --git a/src/tests.rs b/src/tests.rs index 20bbcc5..eff385a 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -3,6 +3,16 @@ use super::build_alias;  #[test]  fn test_build_alias() {      assert_eq!( +        "alias producer@765pro.ductions producer@765pro.ductions", +        build_alias("From: producer@765pro.ductions") +    ); + +    assert_eq!( +        "alias decim Decim <decim@quindecim.jp>", +        build_alias("From: Decim <decim@quindecim.jp>") +    ); + +    assert_eq!(          "alias farnsworth-hubert Hubert Farnsworth <professor@planetexpress.com>",          build_alias("From: Hubert Farnsworth <professor@planetexpress.com>")      ); | 
