Skip to content

Commit 4159130

Browse files
committed
use to_upper_camel_case everywhere
Signed-off-by: Sebastian Hoß <[email protected]>
1 parent 40ae0a2 commit 4159130

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

src/analyzer.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,8 @@ pub struct Config {
2222
/// All found output structs will have its names prefixed by the kind it is for
2323
pub fn analyze(schema: JSONSchemaProps, kind: &str, cfg: Config) -> Result<Output> {
2424
let mut res = vec![];
25-
let upper_cased_kind: String = kind
26-
.chars()
27-
.take(1)
28-
.flat_map(|c| c.to_uppercase())
29-
.chain(kind.chars().skip(1))
30-
.collect();
31-
analyze_(&schema, "", &upper_cased_kind, 0, &mut res, &cfg)?;
25+
26+
analyze_(&schema, "", &kind.to_upper_camel_case(), 0, &mut res, &cfg)?;
3227
Ok(Output(res))
3328
}
3429

@@ -1338,16 +1333,16 @@ type: object
13381333
let structs = analyze(schema, "ArgoCDExport", Cfg::default()).unwrap().0;
13391334

13401335
let root = &structs[0];
1341-
assert_eq!(root.name, "ArgoCDExport");
1336+
assert_eq!(root.name, "ArgoCdExport");
13421337
assert_eq!(root.level, 0);
13431338

1344-
let other = &structs[1];
1345-
assert_eq!(other.name, "ArgoCDExportSpec");
1346-
assert_eq!(other.level, 1);
1339+
let spec = &structs[1];
1340+
assert_eq!(spec.name, "ArgoCdExportSpec");
1341+
assert_eq!(spec.level, 1);
13471342

1348-
let other = &structs[2];
1349-
assert_eq!(other.name, "ArgoCDExportStatus");
1350-
assert_eq!(other.level, 1);
1343+
let status = &structs[2];
1344+
assert_eq!(status.name, "ArgoCdExportStatus");
1345+
assert_eq!(status.level, 1);
13511346
}
13521347

13531348
#[test]

src/main.rs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::{path::PathBuf, str::FromStr};
22
#[macro_use] extern crate log;
33
use anyhow::{anyhow, Context, Result};
44
use clap::{CommandFactory, Parser, Subcommand};
5+
use heck::ToUpperCamelCase;
56
use k8s_openapi::apiextensions_apiserver::pkg::apis::apiextensions::v1::{
67
CustomResourceDefinition, CustomResourceDefinitionVersion,
78
};
@@ -281,7 +282,7 @@ impl Kopium {
281282
.is_some_and(|c| c.contains_key("status")))
282283
&& self.has_status_resource(&structs)
283284
{
284-
println!(r#"#[kube(status = "{}Status")]"#, kind);
285+
println!(r#"#[kube(status = "{}Status")]"#, kind.to_upper_camel_case());
285286
}
286287
if self.schema != "derived" {
287288
println!(r#"#[kube(schema = "{}")]"#, self.schema);
@@ -306,7 +307,10 @@ impl Kopium {
306307
}
307308
} else {
308309
self.print_derives(s, &structs);
309-
let spec_trimmed_name = s.name.as_str().replace(&format!("{}Spec", kind), kind);
310+
let spec_trimmed_name = s
311+
.name
312+
.as_str()
313+
.replace(&format!("{}Spec", kind.to_upper_camel_case()), kind);
310314
if s.is_enum {
311315
println!("pub enum {} {{", spec_trimmed_name);
312316
} else {
@@ -322,7 +326,10 @@ impl Kopium {
322326
for annot in &m.extra_annot {
323327
println!(" {}", annot);
324328
}
325-
let spec_trimmed_type = m.type_.as_str().replace(&format!("{}Spec", kind), kind);
329+
let spec_trimmed_type = m
330+
.type_
331+
.as_str()
332+
.replace(&format!("{}Spec", kind.to_upper_camel_case()), kind);
326333
if s.is_enum {
327334
// NB: only supporting plain enumerations atm, not oneOf
328335
println!(" {},", name);

0 commit comments

Comments
 (0)