diff options
author | Kornel <kornel@geekhood.net> | 2019-08-03 19:39:11 +0100 |
---|---|---|
committer | Kornel <kornel@geekhood.net> | 2019-08-03 20:01:44 +0100 |
commit | 4fed0b350b781863e0e0e7c4bee7e407d2c1e12e (patch) | |
tree | 3cfccf0745d2f3d45a2ec75914d1195e43e02086 /rich_crate | |
parent | 42a5a9051c81527441b2c7b6077a19a6b64d7916 (diff) |
Move category fudge to reading stage
Diffstat (limited to 'rich_crate')
-rw-r--r-- | rich_crate/src/rich_crate_version.rs | 50 |
1 files changed, 2 insertions, 48 deletions
diff --git a/rich_crate/src/rich_crate_version.rs b/rich_crate/src/rich_crate_version.rs index d248c56..dc05ac0 100644 --- a/rich_crate/src/rich_crate_version.rs +++ b/rich_crate/src/rich_crate_version.rs @@ -62,7 +62,7 @@ impl RichCrateVersion { lib_file: Option<String>, path_in_repo: Option<String>, has_buildrs: bool, has_code_of_conduct: bool) -> Self { let package = manifest.package.take().expect("package"); - let mut s = Self { + Self { origin: Origin::from_crates_io_name(index.name()), repo: package.repository.as_ref().and_then(|r| Repo::new(r).ok()), authors: package.authors.iter().map(|a| Author::new(a)).collect(), @@ -91,9 +91,7 @@ impl RichCrateVersion { direct_dependencies: manifest.dependencies, direct_build_dependencies: manifest.build_dependencies, direct_dev_dependencies: manifest.dev_dependencies, - }; - s.override_bad_categories(); - s + } } #[inline] @@ -473,50 +471,6 @@ impl RichCrateVersion { Ok((convsort(normal), convsort(dev), convsort(build))) } - fn override_bad_categories(&mut self) { - for cat in &mut self.package.categories { - if cat.as_bytes().iter().any(|c| !c.is_ascii_lowercase()) { - *cat = cat.to_lowercase(); - } - if cat == "localization" { - // nobody knows the difference - *cat = "internationalization".to_string(); - } - if cat == "parsers" { - if self.direct_dependencies.keys().any(|k| k == "nom" || k == "peresil" || k == "combine") || - self.package.keywords.iter().any(|k| match k.to_ascii_lowercase().as_ref() { - "asn1" | "tls" | "idl" | "crawler" | "xml" | "nom" | "json" | "logs" | "elf" | "uri" | "html" | "protocol" | "semver" | "ecma" | - "chess" | "vcard" | "exe" | "fasta" => true, - _ => false, - }) - { - *cat = "parser-implementations".into(); - } - } - if cat == "cryptography" || cat == "database" || cat == "rust-patterns" || cat == "development-tools" { - if self.package.keywords.iter().any(|k| k == "bitcoin" || k == "ethereum" || k == "ledger" || k == "exonum" || k == "blockchain") { - *cat = "cryptography::cryptocurrencies".into(); - } - } - if cat == "games" { - if self.package.keywords.iter().any(|k| { - k == "game-dev" || k == "game-development" || k == "gamedev" || k == "framework" || k == "utilities" || k == "parser" || k == "api" - }) { - *cat = "game-engines".into(); - } - } - if cat == "science" || cat == "algorithms" { - if self.package.keywords.iter().any(|k| k == "neural-network" || k == "machine-learning" || k == "deep-learning") { - *cat = "science::ml".into(); - } else if self.package.keywords.iter().any(|k| { - k == "math" || k == "calculus" || k == "algebra" || k == "linear-algebra" || k == "mathematics" || k == "maths" || k == "number-theory" - }) { - *cat = "science::math".into(); - } - } - } - } - pub fn language_stats(&self) -> &udedokei::Stats { &self.derived.language_stats } |