# ncase [ɪn'keɪs] — enforce a case style ## Why? So that I could ``` % for f in *.pdf; do mv "$f" "$(ncase -s `basename "$f" .pdf`).pdf" done ``` ## Binary ### Install ``` % cargo install ncase ``` ### Usage Enforce a case style on a string and write that to the standard output ``` % ncase --pascal this is a test string ThisIsATestString ``` ``` % ncase --lower ThisIsATestString this is a test string ``` If built with the `rand` feature, enforce `rANdOm cASe` by default ``` % ncase this is a test string ThiS IS A tesT stRINg ``` Otherwise, enforce `tOGGLE cASE` by default ``` % ncase this is a test string tHIS iS a tEST sTRING ``` ## Library ### Install Add the dependency to your `Cargo.toml` ```toml [dependencies] ncase = "0.2" ``` Or from the command line ``` % cargo add ncase@0.2 ``` ### Usage Use the free functions for one-off case conversions ```rust assert_eq!(ncase::camel("camel case"), "camelCase"); assert_eq!(ncase::snake("snake case"), "snake_case"); ``` Use `Words` if you need to convert one string into many case styles ```rust use ncase::Words; let s = "Lorem ipsum dolor sit amet"; let w = Words::from(s); assert_eq!(w.kebab(), "lorem-ipsum-dolor-sit-amet"); assert_eq!(w.title(), "Lorem Ipsum Dolor Sit Amet"); ``` Or if you want to use the separator regex (requires the `regex` feature) ```rust use ncase::Words; use regex::Regex; let s = "Lorem, ipsum (dolor _sit)_ amet"; let sep = Regex::new(r"[\pP\s]+").unwrap(); let w = Words::with_separator(s, &sep); assert_eq!(w.lower(), "lorem ipsum dolor sit amet"); assert_eq!(w.upper(), "LOREM IPSUM DOLOR SIT AMET"); ```