mirror of
https://github.com/InsanusMokrassar/krontab.git
synced 2026-01-10 22:19:21 +00:00
Compare commits
23 Commits
0.6.5
...
7649d20984
| Author | SHA1 | Date | |
|---|---|---|---|
| 7649d20984 | |||
| ab274636b9 | |||
| 7f2f8a4a26 | |||
| f64171c0f0 | |||
| 8382108b01 | |||
| 32499d02fb | |||
| 2b06033c75 | |||
| 84f1063e3f | |||
| 347cf64cb2 | |||
| eb73da67eb | |||
| 4aadf513aa | |||
| 8c011ea1fb | |||
| aa9c2b8ea0 | |||
| adf10301dc | |||
| 7799077e44 | |||
| 83339dc095 | |||
| 3040951f37 | |||
| 0bfe022476 | |||
| 06107f75f2 | |||
| 039fe1cb5f | |||
| ea7fab6130 | |||
| 2f3796733d | |||
| 89a6a305f8 |
6
.github/workflows/kdocs.yml
vendored
6
.github/workflows/kdocs.yml
vendored
@@ -10,10 +10,10 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-java@v1
|
- uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 1.8
|
java-version: 11
|
||||||
- name: Fix android 31.0.0 dx
|
- name: Fix android 32.0.0 dx
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: cd /usr/local/lib/android/sdk/build-tools/31.0.0/ && mv d8 dx && cd lib && mv d8.jar dx.jar
|
run: cd /usr/local/lib/android/sdk/build-tools/32.0.0/ && cp d8 dx && cd lib && cp d8.jar dx.jar
|
||||||
- name: Build
|
- name: Build
|
||||||
run: ./gradlew dokkaHtml
|
run: ./gradlew dokkaHtml
|
||||||
- name: Publish KDocs
|
- name: Publish KDocs
|
||||||
|
|||||||
6
.github/workflows/publishing_packages.yml
vendored
6
.github/workflows/publishing_packages.yml
vendored
@@ -7,10 +7,10 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-java@v1
|
- uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 1.8
|
java-version: 11
|
||||||
- name: Fix android 31.0.0 dx
|
- name: Fix android 32.0.0 dx
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: cd /usr/local/lib/android/sdk/build-tools/31.0.0/ && mv d8 dx && cd lib && mv d8.jar dx.jar
|
run: cd /usr/local/lib/android/sdk/build-tools/32.0.0/ && cp d8 dx && cd lib && cp d8.jar dx.jar
|
||||||
- name: Update version
|
- name: Update version
|
||||||
run: |
|
run: |
|
||||||
branch="`echo "${{ github.ref }}" | grep -o "[^/]*$"`"
|
branch="`echo "${{ github.ref }}" | grep -o "[^/]*$"`"
|
||||||
|
|||||||
21
CHANGELOG.md
21
CHANGELOG.md
@@ -1,5 +1,26 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 0.7.1
|
||||||
|
|
||||||
|
* Versions
|
||||||
|
* `Klock`: `2.5.2`
|
||||||
|
|
||||||
|
## 0.7.0
|
||||||
|
|
||||||
|
**ALL DEPRECATIONS HAVE BEEN REMOVED**
|
||||||
|
|
||||||
|
* Versions
|
||||||
|
* `Kotlin`: `1.6.10`
|
||||||
|
* `Klock`: `2.4.10`
|
||||||
|
* `Coroutines`: `1.6.0`
|
||||||
|
* `Androidx Work`: `2.7.1`
|
||||||
|
|
||||||
|
## 0.6.6
|
||||||
|
|
||||||
|
* Versions
|
||||||
|
* `Klock`: `2.4.8`
|
||||||
|
* `Androidx Work`: `2.7.0`
|
||||||
|
|
||||||
## 0.6.5
|
## 0.6.5
|
||||||
|
|
||||||
* Flows now use `doWhile` functions
|
* Flows now use `doWhile` functions
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ buildscript {
|
|||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "com.github.breadmoirai:github-release:$github_release_plugin_version"
|
classpath "com.github.breadmoirai:github-release:$github_release_plugin_version"
|
||||||
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:$dexcount_version"
|
classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:$dexcount_version"
|
||||||
classpath 'com.android.tools.build:gradle:4.2.2'
|
classpath 'com.android.tools.build:gradle:7.0.4'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +134,6 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||||
languageVersion = JavaLanguageVersion.of(8)
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ android.useAndroidX=true
|
|||||||
android.enableJetifier=false
|
android.enableJetifier=false
|
||||||
|
|
||||||
|
|
||||||
kotlin_version=1.5.31
|
kotlin_version=1.6.10
|
||||||
kotlin_coroutines_version=1.5.2
|
kotlin_coroutines_version=1.6.0
|
||||||
|
|
||||||
dokka_version=1.5.30
|
dokka_version=1.6.10
|
||||||
|
|
||||||
klockVersion=2.4.2
|
klockVersion=2.5.2
|
||||||
|
|
||||||
## Github reease
|
## Github reease
|
||||||
|
|
||||||
@@ -22,16 +22,16 @@ github_release_plugin_version=2.2.12
|
|||||||
## Android
|
## Android
|
||||||
|
|
||||||
android_minSdkVersion=19
|
android_minSdkVersion=19
|
||||||
android_compileSdkVersion=31
|
android_compileSdkVersion=32
|
||||||
android_buildToolsVersion=31.0.0
|
android_buildToolsVersion=32.0.0
|
||||||
dexcount_version=3.0.0
|
dexcount_version=3.0.0
|
||||||
junit_version=4.12
|
junit_version=4.12
|
||||||
test_ext_junit_version=1.1.2
|
test_ext_junit_version=1.1.2
|
||||||
espresso_core=3.3.0
|
espresso_core=3.3.0
|
||||||
|
|
||||||
androidx_work_version=2.6.0
|
androidx_work_version=2.7.1
|
||||||
|
|
||||||
## Common
|
## Common
|
||||||
|
|
||||||
version=0.6.5
|
version=0.7.1
|
||||||
android_code_version=9
|
android_code_version=12
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||||
|
|||||||
1913
kotlin-js-store/yarn.lock
Normal file
1913
kotlin-js-store/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,6 @@ package dev.inmo.krontab.internal
|
|||||||
|
|
||||||
import com.soywiz.klock.DateTime
|
import com.soywiz.klock.DateTime
|
||||||
import dev.inmo.krontab.KronScheduler
|
import dev.inmo.krontab.KronScheduler
|
||||||
import dev.inmo.krontab.collection.plus
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cron-oriented realisation of [KronScheduler]
|
* Cron-oriented realisation of [KronScheduler]
|
||||||
@@ -36,23 +35,3 @@ internal fun mergeCronDateTimeSchedulers(
|
|||||||
): CronDateTimeScheduler = CronDateTimeScheduler(
|
): CronDateTimeScheduler = CronDateTimeScheduler(
|
||||||
schedulers.map { it.cronDateTime }.merge()
|
schedulers.map { it.cronDateTime }.merge()
|
||||||
)
|
)
|
||||||
|
|
||||||
/**
|
|
||||||
* @return New instance of [CronDateTimeScheduler] with all unique [CronDateTimeScheduler.cronDateTimes] of
|
|
||||||
* [kronSchedulers] included
|
|
||||||
*/
|
|
||||||
@Deprecated("Will be removed in next major release", ReplaceWith("merge", "dev.inmo.krontab"))
|
|
||||||
fun merge(kronSchedulers: List<KronScheduler>) = kronSchedulers.apply { dev.inmo.krontab.merge() }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Vararg shortcut for [dev.inmo.krontab.merge]
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
@Deprecated("Will be removed in next major release", ReplaceWith("merge", "dev.inmo.krontab"))
|
|
||||||
inline fun merge(vararg kronDateTimeSchedulers: KronScheduler) = kronDateTimeSchedulers.apply { dev.inmo.krontab.merge() }
|
|
||||||
/**
|
|
||||||
* @return Vararg shortcut for [dev.inmo.krontab.merge]
|
|
||||||
*/
|
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
|
||||||
@Deprecated("Will be removed in next major release", ReplaceWith("merge", "dev.inmo.krontab"))
|
|
||||||
inline fun KronScheduler.plus(other: KronScheduler) = this + other
|
|
||||||
|
|||||||
@@ -4,20 +4,20 @@ import com.soywiz.klock.DateTime
|
|||||||
import com.soywiz.klock.DateTimeTz
|
import com.soywiz.klock.DateTimeTz
|
||||||
import dev.inmo.krontab.*
|
import dev.inmo.krontab.*
|
||||||
import kotlinx.coroutines.FlowPreview
|
import kotlinx.coroutines.FlowPreview
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.*
|
import kotlinx.coroutines.flow.channelFlow
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This [Flow] will trigger emitting each near time which will be returned from [this] [KronScheduler] with attention to
|
* This [Flow] will trigger emitting each near time which will be returned from [this] [KronScheduler] with attention to
|
||||||
* time zones
|
* time zones
|
||||||
*
|
*
|
||||||
* @see channelFlow
|
* @see channelFlow
|
||||||
* @see KronSchedulerTz.doWhile
|
* @see KronSchedulerTz.doInfinityTz
|
||||||
*/
|
*/
|
||||||
@FlowPreview
|
@FlowPreview
|
||||||
fun KronSchedulerTz.asTzFlow(): Flow<DateTimeTz> = channelFlow {
|
fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = channelFlow {
|
||||||
doInfinity {
|
doInfinityTz {
|
||||||
send(DateTime.nowLocal())
|
send(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,45 +25,11 @@ fun KronSchedulerTz.asTzFlow(): Flow<DateTimeTz> = channelFlow {
|
|||||||
* This method is a map for [asTzFlow] and will works the same but return flow with [DateTime]s
|
* This method is a map for [asTzFlow] and will works the same but return flow with [DateTime]s
|
||||||
*
|
*
|
||||||
* @see channelFlow
|
* @see channelFlow
|
||||||
* @see KronScheduler.doWhile
|
* @see KronScheduler.doInfinityLocal
|
||||||
*/
|
*/
|
||||||
@FlowPreview
|
@FlowPreview
|
||||||
fun KronScheduler.asFlow(): Flow<DateTime> = channelFlow {
|
fun KronScheduler.asFlow(): Flow<DateTime> = channelFlow {
|
||||||
doInfinity {
|
doInfinityLocal {
|
||||||
send(DateTime.now())
|
send(it)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This [Flow] will trigger emitting each near time which will be returned from [this] [KronScheduler] with attention to
|
|
||||||
* time zones
|
|
||||||
*
|
|
||||||
* @see channelFlow
|
|
||||||
* @see KronScheduler.asFlow
|
|
||||||
* @see KronSchedulerTz.asTzFlow
|
|
||||||
*/
|
|
||||||
@FlowPreview
|
|
||||||
fun KronScheduler.asTzFlow(): Flow<DateTimeTz> = when (this) {
|
|
||||||
is KronSchedulerTz -> asTzFlow()
|
|
||||||
else -> asFlow().map { it.local }
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated(
|
|
||||||
"It is not recommended to use this class in future. This functionality will be removed soon",
|
|
||||||
ReplaceWith("asFlow", "dev.inmo.krontab.utils.asFlow")
|
|
||||||
)
|
|
||||||
@FlowPreview
|
|
||||||
class SchedulerFlow(
|
|
||||||
private val scheduler: KronScheduler
|
|
||||||
) : AbstractFlow<DateTime>() {
|
|
||||||
@FlowPreview
|
|
||||||
override suspend fun collectSafely(collector: FlowCollector<DateTime>) {
|
|
||||||
while (true) {
|
|
||||||
val now = DateTime.now()
|
|
||||||
val nextTime = scheduler.next(now) ?: break
|
|
||||||
val sleepDelay = (nextTime - now).millisecondsLong
|
|
||||||
delay(sleepDelay)
|
|
||||||
collector.emit(nextTime)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user