summaryrefslogtreecommitdiffstats
path: root/rich_crate
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2019-08-03 19:39:11 +0100
committerKornel <kornel@geekhood.net>2019-08-03 20:01:44 +0100
commit4fed0b350b781863e0e0e7c4bee7e407d2c1e12e (patch)
tree3cfccf0745d2f3d45a2ec75914d1195e43e02086 /rich_crate
parent42a5a9051c81527441b2c7b6077a19a6b64d7916 (diff)
Move category fudge to reading stage
Diffstat (limited to 'rich_crate')
-rw-r--r--rich_crate/src/rich_crate_version.rs50
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
}