Compare commits

..

6 Commits
0.2.4 ... 0.3.0

Author SHA1 Message Date
94573ecd43 update gradle files 2020-08-29 11:48:54 +06:00
241fb2ee51 KrontabTemplate typealias 2020-08-22 21:42:47 +06:00
cdeea96c54 update dependencies versions 2020-08-22 21:36:55 +06:00
4b310071d7 start 0.3.0 2020-08-22 21:22:42 +06:00
5ccebc5033 Merge pull request #2 from InsanusMokrassar/0.2.4
0.2.4
2020-07-26 00:12:15 +06:00
6dc85d7e18 Merge pull request #1 from InsanusMokrassar/0.2.3
0.2.3
2020-06-03 22:16:03 +06:00
9 changed files with 61 additions and 48 deletions

View File

@@ -1,5 +1,14 @@
# Changelog
## 0.3.0
* Versions:
* `Kotlin`: `1.3.72` -> `1.4.0`
* `Coroutines`: `1.3.8` -> `1.3.9`
* `Klock`: `1.11.14` -> `1.12.0`
* Typealias `KrontabTemplate` was added
* Extension `KrontabTemplate#toSchedule` was added
## 0.2.0
* Updated way of publishing (for more info look at the [git](https://git.insanusmokrassar.com/InsanusMokrassar/krontab))

View File

@@ -7,18 +7,16 @@ buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:$gradle_bintray_plugin_version"
}
}
plugins {
id "org.jetbrains.kotlin.multiplatform" version "$kotlin_version"
id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version"
id "org.jetbrains.dokka" version "$dokka_version"
}
project.version = "0.2.4"
project.version = "0.3.0"
project.group = "com.insanusmokrassar"
apply from: "publish.gradle"
@@ -34,13 +32,17 @@ apply from: './dokka.gradle'
kotlin {
jvm()
js()
js(BOTH) {
browser()
nodejs()
}
sourceSets {
commonMain {
dependencies {
implementation kotlin('stdlib')
api "org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$kotlin_coroutines_version"
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
api "com.soywiz.korlibs.klock:klock:$klockVersion"
}
@@ -49,24 +51,20 @@ kotlin {
dependencies {
implementation kotlin('test-common')
implementation kotlin('test-annotations-common')
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlin_coroutines_version"
}
}
jvmMain {
dependencies {
api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
}
}
jvmTest {
dependencies {
implementation kotlin('test-junit')
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
}
}
jsMain {
dependencies {
api "org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$kotlin_coroutines_version"
implementation kotlin('test-js')
}
}
}

View File

@@ -1,11 +1,11 @@
kotlin.code.style=official
kotlin_version=1.3.72
kotlin_coroutines_version=1.3.8
kotlin_version=1.4.0
kotlin_coroutines_version=1.3.9
dokka_version=0.10.1
gradle_bintray_plugin_version=1.8.4
gradle_bintray_plugin_version=1.8.5
klockVersion=1.11.14
klockVersion=1.12.0
kotlin.incremental.multiplatform=true

View File

@@ -20,37 +20,33 @@ publishing {
publications.all {
artifact javadocsJar
pom.withXml {
asNode().children().last() + {
resolveStrategy = Closure.DELEGATE_FIRST
pom {
description = "It is an analog of crontab util for Kotlin Coroutines"
name = "Krontab"
url = "https://git.insanusmokrassar.com/InsanusMokrassar/krontab"
description "It is an analog of crontab util for Kotlin Coroutines"
name "Krontab"
url "https://git.insanusmokrassar.com/InsanusMokrassar/krontab"
scm {
developerConnection = "scm:git:[fetch=]https://git.insanusmokrassar.com:8322/InsanusMokrassar/krontab.git[push=]https://git.insanusmokrassar.com:8322/InsanusMokrassar/krontab.git"
url = "https://git.insanusmokrassar.com:8322/InsanusMokrassar/krontab.git"
}
scm {
developerConnection "scm:git:[fetch=]https://git.insanusmokrassar.com/InsanusMokrassar/krontab.git[push=]https://git.insanusmokrassar.com/InsanusMokrassar/krontab.git"
url "https://git.insanusmokrassar.com/InsanusMokrassar/krontab.git"
}
developers {
developer {
id = "InsanusMokrassar"
name = "Ovsiannikov Aleksei"
email = "ovsyannikov.alexey95@gmail.com"
}
}
developers {
developer {
id "InsanusMokrassar"
name "Ovsiannikov Aleksei"
email "ovsyannikov.alexey95@gmail.com"
}
}
licenses {
license {
name "Apache Software License 2.0"
url "https://git.insanusmokrassar.com/InsanusMokrassar/krontab/src/master/LICENSE"
}
}
licenses {
license {
name = "Apache Software License 2.0"
url = "https://git.insanusmokrassar.com/InsanusMokrassar/krontab/src/master/LICENSE"
}
}
}
}

View File

@@ -1 +0,0 @@
{"bintrayConfig":{"repo":"InsanusMokrassar","packageName":"${project.name}","packageVcs":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab"},"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab/src/master/LICENSE"}],"mavenConfig":{"name":"Krontab","description":"It is an analog of crontab util for Kotlin Coroutines","url":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab","vcsUrl":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}]}}

1
mpp_config.kpsb Normal file
View File

@@ -0,0 +1 @@
{"bintrayConfig":{"repo":"InsanusMokrassar","packageName":"${project.name}-mpp","packageVcs":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab"},"licenses":[{"id":"Apache-2.0","title":"Apache Software License 2.0","url":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab/src/master/LICENSE"}],"mavenConfig":{"name":"Krontab","description":"It is an analog of crontab util for Kotlin Coroutines","url":"https://git.insanusmokrassar.com/InsanusMokrassar/krontab","vcsUrl":"https://git.insanusmokrassar.com:8322/InsanusMokrassar/krontab.git","developers":[{"id":"InsanusMokrassar","name":"Ovsiannikov Aleksei","eMail":"ovsyannikov.alexey95@gmail.com"}]},"type":"Multiplatform"}

View File

@@ -27,10 +27,9 @@ bintray {
}
pkg {
repo = "InsanusMokrassar"
name = "${project.name}"
name = "${project.name}-mpp"
vcsUrl = "https://git.insanusmokrassar.com/InsanusMokrassar/krontab"
licenses = ["Apache-2.0"]
override=true
version {
name = "${project.version}"
released = new Date()

View File

@@ -2,6 +2,12 @@ package com.insanusmokrassar.krontab
import com.insanusmokrassar.krontab.internal.*
/**
* @see createSimpleScheduler
* @see buildSchedule
*/
typealias KrontabTemplate = String
/**
* Parse [incoming] string and adapt according to next format: "* * * * *" where order of things:
*
@@ -38,7 +44,7 @@ import com.insanusmokrassar.krontab.internal.*
*
* @see com.insanusmokrassar.krontab.internal.createKronScheduler
*/
fun createSimpleScheduler(incoming: String): KronScheduler {
fun createSimpleScheduler(incoming: KrontabTemplate): KronScheduler {
val (secondsSource, minutesSource, hoursSource, dayOfMonthSource, monthSource) = incoming.split(" ")
val secondsParsed = parseSeconds(secondsSource)
@@ -55,4 +61,9 @@ fun createSimpleScheduler(incoming: String): KronScheduler {
/**
* Shortcut for [createSimpleScheduler]
*/
fun buildSchedule(incoming: String): KronScheduler = createSimpleScheduler(incoming)
fun buildSchedule(incoming: KrontabTemplate): KronScheduler = createSimpleScheduler(incoming)
/**
* Shortcut for [buildSchedule]
*/
fun KrontabTemplate.toSchedule(): KronScheduler = buildSchedule(this)

View File

@@ -26,7 +26,7 @@ internal data class CronDateTimeScheduler internal constructor(
* @see toNearDateTime
*/
override suspend fun next(relatively: DateTime): DateTime {
return cronDateTimes.map { it.toNearDateTime(relatively) }.min() ?: anyCronDateTime.toNearDateTime(relatively)
return cronDateTimes.map { it.toNearDateTime(relatively) }.minOrNull() ?: anyCronDateTime.toNearDateTime(relatively)
}
}