splitWordsByCase() Function
In #12, I added a new splitWordsByCase()
function that is able to create a string with whitespace-delimited words from any other case; camelCased, -kebab-cased-, PascalCase, snake_case, slug-case.
A few examples from the tests:
func testCaseMorphing() {
let string = "Hello World"
XCTAssertEqual(string.camelCased().kebabCased(), "-hello-world-")
XCTAssertEqual(string.camelCased().pascalCased(), "HelloWorld")
XCTAssertEqual(string.camelCased().slugCased(), "hello-world")
XCTAssertEqual(string.camelCased().snakeCased(), "hello_world")
XCTAssertEqual(string.kebabCased().camelCased(), "helloWorld")
XCTAssertEqual(string.kebabCased().pascalCased(), "HelloWorld")
XCTAssertEqual(string.kebabCased().slugCased(), "hello-world")
XCTAssertEqual(string.kebabCased().snakeCased(), "hello_world")
XCTAssertEqual(string.pascalCased().camelCased(), "helloWorld")
XCTAssertEqual(string.pascalCased().kebabCased(), "-hello-world-")
XCTAssertEqual(string.pascalCased().slugCased(), "hello-world")
XCTAssertEqual(string.pascalCased().snakeCased(), "hello_world")
XCTAssertEqual(string.slugCased().camelCased(), "helloWorld")
XCTAssertEqual(string.slugCased().kebabCased(), "-hello-world-")
XCTAssertEqual(string.slugCased().pascalCased(), "HelloWorld")
XCTAssertEqual(string.slugCased().snakeCased(), "hello_world")
XCTAssertEqual(string.snakeCased().camelCased(), "helloWorld")
XCTAssertEqual(string.snakeCased().kebabCased(), "-hello-world-")
XCTAssertEqual(string.snakeCased().pascalCased(), "HelloWorld")
XCTAssertEqual(string.snakeCased().slugCased(), "hello-world")
}