https://github.com/ranyitz/casing
Scala Library for Naming Convention Transitions
https://github.com/ranyitz/casing
camelcase kebab-case pascalcase snakecase
Last synced: about 1 month ago
JSON representation
Scala Library for Naming Convention Transitions
- Host: GitHub
- URL: https://github.com/ranyitz/casing
- Owner: ranyitz
- Created: 2023-09-30T15:26:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-01T12:42:10.000Z (over 1 year ago)
- Last Synced: 2025-03-21T14:08:53.496Z (2 months ago)
- Topics: camelcase, kebab-case, pascalcase, snakecase
- Language: Scala
- Homepage:
- Size: 14.6 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ๐ Casing
> Scala Library for Naming Convention Transitions (camelCase, PascalCase, snake_case, kebab-case, etc.)
[](https://github.com/ranyitz/casing/actions/workflows/ci.yml)
[](https://central.sonatype.com/artifact/io.github.ranyitz/casing_2.13)
[](https://www.scala-lang.org/)
[](https://opensource.org/licenses/MIT)## Features
โ๏ธ Split words in any kind of [Naming Convention](https://en.wikipedia.org/wiki/Naming_convention_(programming))
๐ชถ Dependency free
๐งช Fully tested## Installation
To include Casing in your Scala project, add the following dependency:```scala
libraryDependencies += "io.github.ranyitz" %% "casing" % "0.2.0"
```## Usage
```scala
import casing._camelCase("foo_bar") // fooBar
pascalCase("foo bar") // FooBar
snakeCase("fooBar") // foo_bar
kebabCase("foo-bar") // foo-bar
constantCase("foo.bar") // FOO_BARcaseSplit("fooBarBaz") // foo.bar.baz
.map(_.toLowerCase())
.mkString(".")
```### split
splits a string into words based on the casing pattern> can be used to create any custom naming pattern
```scala
caseSplit("fooBarBaz") // Seq(foo, Bar, Baz)
caseSplit("foo_bar_baz") // Seq(foo, bar, baz)
caseSplit("foo-bar-baz") // Seq(foo, bar, baz)
caseSplit("FOO_BAR_BAZ") // List(FOO, BAR, BAZ)
```### camelCase
converts a string to [camelCase](https://en.wikipedia.org/wiki/Camel_case)```scala
camelCase("foo_bar") // fooBar
```### pascalCase
converts a string to [PascalCase](https://en.wikipedia.org/wiki/Camel_case)```scala
pascalCase("foo_bar") // FooBar
```### snakeCase
converts a string to [snake_case](https://en.wikipedia.org/wiki/Snake_case)```scala
snakeCase("fooBar") // foo_bar
```### kebabCase
converts a string to [kebab-case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles)```scala
kebabCase("fooBar") // foo-bar
```### constantCase
converts a string to CONSTANT_CASE or [SCREAMING_SNAKE_CASE](https://en.wikipedia.org/wiki/Snake_case)```scala
constantCase("fooBar") // FOO_BAR
```### Validation Functions
validates a string against a specific naming convention```scala
isCamelCase("fooBar") // true
isPascalCase("FooBar") // true
isSnakeCase("foo_bar") // true
isKebabCase("foo-bar") // true
isConstantCase("FOO_BAR") // true
```### Inspiration
* [change-case](https://github.com/blakeembrey/change-case)