Browse Source

Merge pull request #265 from o2sh/fix/markdown-jupyter-stats

Handle Markdown and Jupyter Notebooks
pull/267/head
Ossama Hjaji 5 years ago committed by GitHub
parent
commit
2acd7e93d2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 34
      src/onefetch/language.rs

34
src/onefetch/language.rs

@ -163,18 +163,36 @@ impl Language { @@ -163,18 +163,36 @@ impl Language {
fn get_languages_stat(languages: &tokei::Languages) -> Option<HashMap<Language, f64>> {
let mut stats = HashMap::new();
let sum_language_code: usize = languages.iter().map(|(_, v)| v.code).sum();
for (language_type, language) in languages.iter() {
let mut code = language.code;
if sum_language_code == 0 {
let has_children = !language.children.is_empty();
if has_children {
for reports in language.children.values() {
for stats in reports.iter().map(|r| r.stats.summarise()) {
code += stats.code;
}
}
}
if code == 0 {
continue;
}
stats.insert(Language::from(*language_type), code as f64);
}
let total: f64 = stats.iter().map(|(_, v)| v).sum();
if total.abs() < f64::EPSILON {
None
} else {
for (k, v) in languages.iter() {
let code = v.code as f64;
stats.insert(
Language::from(*k),
(code / sum_language_code as f64) * 100.00,
);
for (_, val) in stats.iter_mut() {
*val /= total;
*val *= 100_f64;
}
Some(stats)
}
}

Loading…
Cancel
Save