Skip to content

Commit

Permalink
Create README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
MerlinTHS authored Jan 23, 2023
1 parent 3ef567b commit 41a0af8
Showing 1 changed file with 77 additions and 0 deletions.
77 changes: 77 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Kava
Kotlin Validation DSL

## Installation

### Gradle

In your root build.gradle file

```gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
Add dependency to your module build.gradle file

```gradle
implementation 'com.github.MerlinTHS:Kava:1.0.1'
```

## Getting started

Using standard kotlin
```kotlin
import java.util.Optional

fun main() {
val name = parseName("Hello Kotlin!")

name.ifPresent(::println)
}

fun parseName(greeting: String): Optional<String> {
if (greeting.isBlank() or !greeting.endsWith("!")) {
return Optional.empty();
}

val name = "Hello\\s([^!]*)!"
.toRegex()
.find(greeting)


return Optional.ofNullable(
name?.groupValues?.get(1)
)
}
```

Using Kava
```kotlin
import com.github.merlinths.kava.ensure
import com.github.merlinths.kava.validation.valid
import com.github.merlinths.kava.validator.optional

fun main() = valid {
val (name) = parseName("Hello Kotlin!")

println(name)
}

fun parseName(greeting: String) = optional {
ensure (greeting) {
isNotBlank() and endsWith("!")
}

val (name) = "Hello\\s([^!]*)!"
.toRegex()
.find(greeting)

name.groupValues[1]
}
```

## Supported platforms
- JVM

0 comments on commit 41a0af8

Please sign in to comment.