Compare commits

..

13 Commits

Author SHA1 Message Date
837758aebe update uuid 2021-04-13 12:22:04 +06:00
6ac4149aa1 fixes in crud repos 2021-04-13 12:20:24 +06:00
278584ae6a start 0.4.34 2021-04-13 12:10:55 +06:00
126f9d5f41 Merge pull request #57 from InsanusMokrassar/0.4.33
0.4.33
2021-04-05 16:30:58 +06:00
ce15ff4e0a update ktor 2021-04-05 16:22:39 +06:00
382b956beb make createWeakSubScope private, upfill readme 2021-04-05 16:20:11 +06:00
36deab4909 weak jobs workaround 2021-04-05 16:10:36 +06:00
550fc59d9d start 0.4.33 2021-04-05 15:14:21 +06:00
9100a57458 Merge pull request #56 from InsanusMokrassar/0.4.32
0.4.32
2021-04-03 14:07:01 +06:00
74d9bbccd9 updates 2021-04-02 18:43:56 +06:00
75e602a349 update kotlin exposed 2021-04-02 18:39:56 +06:00
e73644db10 start 0.4.32 2021-04-02 18:26:53 +06:00
148e6bdae7 Merge pull request #55 from InsanusMokrassar/0.4.31
0.4.31
2021-03-29 20:12:11 +06:00
7 changed files with 126 additions and 8 deletions

21
.github/workflows/dokka_push.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Publish KDocs
on:
push:
branches:
- master
jobs:
publishing:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build
run: ./gradlew dokkaHtml
- name: Publish KDocs
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dokka/build/dokka/html
publish_branch: kdocs

View File

@@ -1,5 +1,27 @@
# Changelog
## 0.4.34
* `Versions`:
* `uuid`: `0.2.3` -> `0.2.4`
* `Repos`:
* `AbstractExposedCRUDRepo` now implements `StandardCRUDRepo`
* `AbstractMutableAndroidCRUDRepo` now implements `StandardCRUDRepo`
## 0.4.33
* `Versions`:
* `Ktor`: `1.5.2` -> `1.5.3`
* `Coroutines`
* Add `WeakJob` workaround:
* `CoroutineScope#weakLaunch`
* `CoroutineScope#weakAsync`
## 0.4.32
* `Versions`:
* `Kotlin Exposed`: `0.29.1` -> `0.30.1`
## 0.4.31
* `Versions`:

View File

@@ -0,0 +1,31 @@
package dev.inmo.micro_utils.coroutines
import kotlinx.coroutines.*
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.EmptyCoroutineContext
private fun CoroutineScope.createWeakSubScope() = CoroutineScope(coroutineContext.minusKey(Job)).also { newScope ->
coroutineContext.job.invokeOnCompletion { newScope.cancel() }
}
fun CoroutineScope.weakLaunch(
context: CoroutineContext = EmptyCoroutineContext,
start: CoroutineStart = CoroutineStart.DEFAULT,
block: suspend CoroutineScope.() -> Unit
): Job {
val scope = createWeakSubScope()
val job = scope.launch(context, start, block)
job.invokeOnCompletion { scope.cancel() }
return job
}
fun <T> CoroutineScope.weakAsync(
context: CoroutineContext = EmptyCoroutineContext,
start: CoroutineStart = CoroutineStart.DEFAULT,
block: suspend CoroutineScope.() -> T
): Deferred<T> {
val scope = createWeakSubScope()
val deferred = scope.async(context, start, block)
deferred.invokeOnCompletion { scope.cancel() }
return deferred
}

View File

@@ -0,0 +1,40 @@
package dev.inmo.micro_utils.coroutines
import kotlinx.coroutines.*
import org.junit.Test
class WeakJob {
@Test
fun `test that weak jobs works correctly`() {
val scope = CoroutineScope(Dispatchers.Default)
lateinit var weakLaunchJob: Job
lateinit var weakAsyncJob: Job
scope.launchSynchronously {
val completeDeferred = Job()
coroutineScope {
weakLaunchJob = weakLaunch {
while (isActive) {
delay(100L)
}
}
weakAsyncJob = weakAsync {
while (isActive) {
delay(100L)
}
}
coroutineContext.job.invokeOnCompletion {
scope.launch {
delay(1000L)
completeDeferred.complete()
}
}
launch { delay(1000L); cancel() }
}
completeDeferred.join()
}
assert(!weakLaunchJob.isActive)
assert(!weakAsyncJob.isActive)
}
}

View File

@@ -9,15 +9,15 @@ android.enableJetifier=true
kotlin_version=1.4.32
kotlin_coroutines_version=1.4.3
kotlin_serialisation_core_version=1.1.0
kotlin_exposed_version=0.29.1
kotlin_exposed_version=0.30.1
ktor_version=1.5.2
ktor_version=1.5.3
klockVersion=2.0.7
github_release_plugin_version=2.2.12
uuidVersion=0.2.3
uuidVersion=0.2.4
# ANDROID
@@ -39,10 +39,10 @@ crypto_js_version=4.0.0
# Dokka
dokka_version=1.4.20
dokka_version=1.4.30
# Project data
group=dev.inmo
version=0.4.31
android_code_version=35
version=0.4.34
android_code_version=38

View File

@@ -8,7 +8,8 @@ import kotlinx.coroutines.flow.*
abstract class AbstractMutableAndroidCRUDRepo<ObjectType, IdType, InputValueType>(
helper: StandardSQLHelper
) : WriteStandardCRUDRepo<ObjectType, IdType, InputValueType>,
AbstractAndroidCRUDRepo<ObjectType, IdType>(helper) {
AbstractAndroidCRUDRepo<ObjectType, IdType>(helper),
StandardCRUDRepo<ObjectType, IdType, InputValueType> {
protected val newObjectsChannel = MutableSharedFlow<ObjectType>(64)
protected val updateObjectsChannel = MutableSharedFlow<ObjectType>(64)
protected val deleteObjectsIdsChannel = MutableSharedFlow<IdType>(64)

View File

@@ -1,5 +1,7 @@
package dev.inmo.micro_utils.repos.exposed
import dev.inmo.micro_utils.repos.StandardCRUDRepo
abstract class AbstractExposedCRUDRepo<ObjectType, IdType, InputValueType>(
flowsChannelsSize: Int = 0,
tableName: String = ""
@@ -8,4 +10,5 @@ abstract class AbstractExposedCRUDRepo<ObjectType, IdType, InputValueType>(
flowsChannelsSize,
tableName
),
ExposedCRUDRepo<ObjectType, IdType>
ExposedCRUDRepo<ObjectType, IdType>,
StandardCRUDRepo<ObjectType, IdType, InputValueType>