Skip to content

Commit

Permalink
Merge branch 'main' into non-throwing-retrofit-adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaszkalnik committed Jan 2, 2022
2 parents 1961a79 + bf4c6ba commit f55bffb
Show file tree
Hide file tree
Showing 6 changed files with 137 additions and 128 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/generate-alpha-tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ jobs:
java-version: 11

- name: Gradle build
run: ./gradlew build "-Psemver.stage=alpha"
uses: gradle/gradle-build-action@v2.0.1
with:
arguments: --full-stacktrace build "-Psemver.stage=alpha"

- name: Stop Gradle daemons
run: ./gradlew --stop
Expand All @@ -50,7 +52,9 @@ jobs:
java-version: 11

- name: Generate Tag
run: ./gradlew createSemverTag "-Psemver.stage=alpha"
uses: gradle/gradle-build-action@v2.0.1
with:
arguments: --full-stacktrace createSemverTag "-Psemver.stage=alpha"

- name: Push
run: git push --follow-tags
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/generate-tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ jobs:
java-version: 11

- name: Gradle build
run: ./gradlew build "-Psemver.scope=${{ github.event.inputs.scope }}" "-Psemver.stage=${{ github.event.inputs.stage }}"
uses: gradle/gradle-build-action@v2.0.1
with:
arguments: --full-stacktrace build "-Psemver.scope=${{ github.event.inputs.scope }}" "-Psemver.stage=${{ github.event.inputs.stage }}"

- name: Stop Gradle daemons
run: ./gradlew --stop
Expand All @@ -71,7 +73,9 @@ jobs:
java-version: 11

- name: Generate Tag
run: ./gradlew createSemverTag "-Psemver.scope=${{ github.event.inputs.scope }}" "-Psemver.stage=${{ github.event.inputs.stage }}"
uses: gradle/gradle-build-action@v2.0.1
with:
arguments: --full-stacktrace createSemverTag "-Psemver.scope=${{ github.event.inputs.scope }}" "-Psemver.stage=${{ github.event.inputs.stage }}"

- name: Push
run: git push --follow-tags
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,9 @@ jobs:
bundle install --gemfile Gemfile
- name: Create API doc
run: ./gradlew dokkaGfm
uses: gradle/gradle-build-action@v2.0.1
with:
arguments: --full-stacktrace dokkaGfm

- name: Build landing page
working-directory: arrow-site
Expand Down
4 changes: 1 addition & 3 deletions arrow-libs/optics/arrow-optics-ksp-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id(libs.plugins.kotlin.multiplatform.get().pluginId)
id(libs.plugins.kotlin.jvm.get().pluginId)
alias(libs.plugins.arrowGradleConfig.kotlin)
alias(libs.plugins.arrowGradleConfig.publish)
}
Expand All @@ -8,8 +8,6 @@ kotlin {
explicitApi = null
}

apply(plugin = "io.kotest.multiplatform")

apply(from = property("TEST_COVERAGE"))
apply(from = property("ANIMALSNIFFER_MPP"))

Expand Down
31 changes: 16 additions & 15 deletions arrow-libs/optics/arrow-optics/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ plugins {
id(libs.plugins.kotlin.multiplatform.get().pluginId)
alias(libs.plugins.arrowGradleConfig.kotlin)
alias(libs.plugins.arrowGradleConfig.publish)
alias(libs.plugins.ksp)
// alias(libs.plugins.ksp)
}

apply(plugin = "io.kotest.multiplatform")
Expand Down Expand Up @@ -42,18 +42,19 @@ kotlin {
}
}

fun DependencyHandlerScope.kspTest(dependencyNotation: Any): Unit {
val exclude = setOf("commonTest", "nativeTest")
kotlin.sourceSets
.filter { it.name !in exclude && it.name.contains("Test") }
.forEach {
val task = "ksp${it.name.capitalize()}"
configurations.findByName(task)?.let {
add(task, dependencyNotation)
}
}
}
//fun DependencyHandlerScope.kspTest(dependencyNotation: Any): Unit {
// val exclude = setOf("commonTest", "nativeTest")
// add("kspMetadata", dependencyNotation)
// kotlin.sourceSets
// .filter { it.name !in exclude && it.name.contains("Test") }
// .forEach {
// val task = "ksp${it.name.capitalize()}"
// configurations.findByName(task)?.let {
// add(task, dependencyNotation)
// }
// }
//}

dependencies {
kspTest(projects.arrowOpticsKspPlugin)
}
//dependencies {
// kspTest(projects.arrowOpticsKspPlugin)
//}
Original file line number Diff line number Diff line change
@@ -1,105 +1,105 @@
package arrow.optics

import arrow.core.None
import arrow.core.test.UnitSpec
import arrow.optics.typeclasses.At
import arrow.optics.typeclasses.Index
import io.kotest.matchers.shouldBe

@optics
data class Street(val number: Int, val name: String) {
companion object
}

@optics
data class Address(val city: String, val street: Street) {
companion object
}

@optics
data class Company(val name: String, val address: Address) {
companion object
}

@optics
data class Employee(val name: String, val company: Company?) {
companion object
}

@optics
data class CompanyEmployees(val employees: List<Employee>) {
companion object
}

sealed class Keys
object One : Keys()
object Two : Keys()
object Three : Keys()
object Four : Keys()

@optics
data class Db(val content: Map<Keys, String>) {
companion object
}

class BoundedTest : UnitSpec() {

init {

val john = Employee(
"John Doe",
Company("Kategory", Address("Functional city", Street(42, "lambda street")))
)
val jane = Employee(
"Jane Doe",
Company("Kategory", Address("Functional city", Street(42, "lambda street")))
)

val employees = CompanyEmployees(listOf(john, jane))

val db = Db(
mapOf(
One to "one",
Two to "two",
Three to "three",
Four to "four"
)
)

"@optics generate DSL properly" {
Employee.company.address.street.name.modify(
john,
String::toUpperCase
) shouldBe (Employee.company compose
Company.address compose
Address.street compose
Street.name).modify(john, String::toUpperCase)
}

"Index enables special Index syntax" {
Index.list<Employee>().run {
CompanyEmployees.employees[1].company.address.street.name.modify(
employees,
String::toUpperCase
)
} shouldBe (CompanyEmployees.employees compose
Index.list<Employee>().index(1) compose
Employee.company compose
Company.address compose
Address.street compose
Street.name).modify(employees, String::toUpperCase)
}

"Working with At in Optics should be same as in DSL" {
At.map<Keys, String>().run {
Db.content.at(One).set(db, None)
} shouldBe (Db.content compose At.map<Keys, String>().at(One)).set(db, None)
}

"Working with Every in Optics should be same as in DSL" {
PEvery.map<Keys, String>().run {
Db.content.every.modify(db, String::toUpperCase)
} shouldBe (Db.content compose PEvery.map()).modify(db, String::toUpperCase)
}
}
}
//package arrow.optics
//
//import arrow.core.None
//import arrow.core.test.UnitSpec
//import arrow.optics.typeclasses.At
//import arrow.optics.typeclasses.Index
//import io.kotest.matchers.shouldBe
//
//@optics
//data class Street(val number: Int, val name: String) {
// companion object
//}
//
//@optics
//data class Address(val city: String, val street: Street) {
// companion object
//}
//
//@optics
//data class Company(val name: String, val address: Address) {
// companion object
//}
//
//@optics
//data class Employee(val name: String, val company: Company?) {
// companion object
//}
//
//@optics
//data class CompanyEmployees(val employees: List<Employee>) {
// companion object
//}
//
//sealed class Keys
//object One : Keys()
//object Two : Keys()
//object Three : Keys()
//object Four : Keys()
//
//@optics
//data class Db(val content: Map<Keys, String>) {
// companion object
//}
//
//class BoundedTest : UnitSpec() {
//
// init {
//
// val john = Employee(
// "John Doe",
// Company("Kategory", Address("Functional city", Street(42, "lambda street")))
// )
// val jane = Employee(
// "Jane Doe",
// Company("Kategory", Address("Functional city", Street(42, "lambda street")))
// )
//
// val employees = CompanyEmployees(listOf(john, jane))
//
// val db = Db(
// mapOf(
// One to "one",
// Two to "two",
// Three to "three",
// Four to "four"
// )
// )
//
// "@optics generate DSL properly" {
// Employee.company.address.street.name.modify(
// john,
// String::toUpperCase
// ) shouldBe (Employee.company compose
// Company.address compose
// Address.street compose
// Street.name).modify(john, String::toUpperCase)
// }
//
// "Index enables special Index syntax" {
// Index.list<Employee>().run {
// CompanyEmployees.employees[1].company.address.street.name.modify(
// employees,
// String::toUpperCase
// )
// } shouldBe (CompanyEmployees.employees compose
// Index.list<Employee>().index(1) compose
// Employee.company compose
// Company.address compose
// Address.street compose
// Street.name).modify(employees, String::toUpperCase)
// }
//
// "Working with At in Optics should be same as in DSL" {
// At.map<Keys, String>().run {
// Db.content.at(One).set(db, None)
// } shouldBe (Db.content compose At.map<Keys, String>().at(One)).set(db, None)
// }
//
// "Working with Every in Optics should be same as in DSL" {
// PEvery.map<Keys, String>().run {
// Db.content.every.modify(db, String::toUpperCase)
// } shouldBe (Db.content compose PEvery.map()).modify(db, String::toUpperCase)
// }
// }
//}

0 comments on commit f55bffb

Please sign in to comment.