Added small a utility that eats extra whitespace.

This commit is contained in:
Jordan Petridis 2017-12-07 18:31:45 +02:00
parent 1266c6e971
commit 48e61c6377
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
2 changed files with 30 additions and 2 deletions

View File

@ -105,6 +105,15 @@ pub fn url_cleaner(s: &str) -> String {
}
}
/// Placeholder
// TODO: Docs
pub fn replace_extra_spaces(s: &str) -> String {
s.lines()
.map(|x| x.split_whitespace().collect::<Vec<_>>().join(" "))
.filter(|x| !x.is_empty())
.collect::<Vec<_>>().join("\n")
}
#[cfg(test)]
mod tests {
extern crate tempdir;
@ -241,4 +250,22 @@ mod tests {
assert_eq!(url_cleaner(good_url), good_url);
assert_eq!(url_cleaner(&format!(" {}\t\n", bad_url)), good_url);
}
#[test]
fn test_whitespace() {
let bad_txt = "1 2 3 4 5";
let valid_txt = "1 2 3 4 5";
assert_eq!(replace_extra_spaces(&bad_txt), valid_txt);
let bad_txt = "1 2 3 \n 4 5\n";
let valid_txt = "1 2 3\n4 5";
assert_eq!(replace_extra_spaces(&bad_txt), valid_txt);
let bad_txt = "1 2 3 \n\n\n \n 4 5\n";
let valid_txt = "1 2 3\n4 5";
assert_eq!(replace_extra_spaces(&bad_txt), valid_txt);
}
}

View File

@ -12,6 +12,7 @@ use hammond_data::{Episode, Podcast};
use hammond_downloader::downloader;
use hammond_data::utils::*;
use hammond_data::errors::*;
use hammond_data::utils::replace_extra_spaces;
// use utils::html_to_markup;
@ -90,10 +91,10 @@ impl EpisodeWidget {
// html_to_markup(&mut text);
// description.set_markup(&text)
let plain_text = strip_html_tags(&text).join("");
let plain_text = strip_html_tags(&text).join(" ");
// TODO: handle unwrap
let buff = description.get_buffer().unwrap();
buff.set_text(plain_text.trim());
buff.set_text(&replace_extra_spaces(&plain_text));
}));
}