Skip to content

Commit

Permalink
Merge pull request #265 from o2sh/fix/markdown-jupyter-stats
Browse files Browse the repository at this point in the history
Handle Markdown and Jupyter Notebooks
  • Loading branch information
o2sh authored Oct 15, 2020
2 parents 37379a5 + 9bd6e89 commit 2acd7e9
Showing 1 changed file with 26 additions and 8 deletions.
34 changes: 26 additions & 8 deletions src/onefetch/language.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
Expand Down

0 comments on commit 2acd7e9

Please sign in to comment.