Skip to content

splitWordsByCase() Function

Compare
Choose a tag to compare
@ArtSabintsev ArtSabintsev released this 13 Mar 05:52
· 96 commits to master since this release

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")
    }