diff options
Diffstat (limited to 'src/modules/dart.rs')
-rw-r--r-- | src/modules/dart.rs | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/modules/dart.rs b/src/modules/dart.rs index 00b4cf353..5d1b25f6a 100644 --- a/src/modules/dart.rs +++ b/src/modules/dart.rs @@ -2,6 +2,7 @@ use super::{Context, Module, RootModuleConfig}; use crate::configs::dart::DartConfig; use crate::formatter::StringFormatter; +use crate::formatter::VersionFormatter; /// Creates a module with the current Dart version pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { @@ -31,8 +32,14 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { }) .map(|variable| match variable { "version" => { - let dart_version = context.exec_cmd("dart", &["--version"])?.stderr; - parse_dart_version(&dart_version).map(Ok) + let dart_version = + get_dart_version(&context.exec_cmd("dart", &["--version"])?.stderr)?; + VersionFormatter::format_module_version( + module.get_name(), + &dart_version, + config.version_format, + ) + .map(Ok) } _ => None, }) @@ -50,31 +57,25 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { Some(module) } -fn parse_dart_version(dart_version: &str) -> Option<String> { - let version = dart_version - // split into ["Dart", "VM", "version:", "2.8.4", "(stable)", ...] - .split_whitespace() - // return "2.8.4" - .nth(3)?; - - Some(format!("v{}", version)) +fn get_dart_version(dart_version: &str) -> Option<String> { + Some( + dart_version + // split into ["Dart", "VM", "version:", "2.8.4", "(stable)", ...] + .split_whitespace() + // return "2.8.4" + .nth(3)? + .to_string(), + ) } #[cfg(test)] mod tests { - use super::parse_dart_version; use crate::test::ModuleRenderer; use ansi_term::Color; use std::fs::{self, File}; use std::io; #[test] - fn test_parse_dart_version() { - let input = "Dart VM version: 2.8.4 (stable)"; - assert_eq!(parse_dart_version(input), Some("v2.8.4".to_string())); - } - - #[test] fn folder_without_dart_file() -> io::Result<()> { let dir = tempfile::tempdir()?; let actual = ModuleRenderer::new("dart").path(dir.path()).collect(); |