Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/no-carrier.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Rebert <code@rebertia.com>2015-07-28 06:04:05 +0300
committerChris Rebert <code@rebertia.com>2015-07-28 06:04:05 +0300
commitd20339d44479f2c5648590907b3be8fc1a9191ad (patch)
treec9e6178b8b6ca3109d3f26c5b222f448ccb318b4 /src
parent8f87721eb7f0f3cfb0be68e018552583b4aee943 (diff)
Fix typing of label name equality check in RichIssue.lastLabelledWithAt
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala17
-rw-r--r--src/main/scala/com/getbootstrap/no_carrier/util/package.scala12
2 files changed, 17 insertions, 12 deletions
diff --git a/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala b/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
index 40941f3..60d4c5a 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/github/util/package.scala
@@ -2,14 +2,14 @@ package com.getbootstrap.no_carrier.github
import java.util.EnumMap
import java.time.Instant
-import javax.json.JsonObject
-import scala.util.{Try,Success}
+import scala.util.Try
import scala.collection.JavaConverters._
-import com.jcabi.github.{Event => IssueEvent, Issue, Issues, IssueLabels, Comment, Search, Repo, Repos}
+import com.jcabi.github.{Event => IssueEvent, _}
import com.jcabi.github.Issue.{Smart=>SmartIssue}
import com.jcabi.github.Event.{Smart=>SmartIssueEvent}
import com.jcabi.github.Comment.{Smart=>SmartComment}
import com.jcabi.github.Repos.RepoCreate
+import com.getbootstrap.no_carrier.util.GoogleToScalaOptional
package object util {
implicit class RichIssues(issues: Issues) {
@@ -28,7 +28,7 @@ package object util {
def commentsIterable: Iterable[Comment] = issue.comments.iterate.asScala
def lastLabelledWithAt(label: String): Option[Instant] = {
- val labellings = issue.smartEvents.filter{ event => event.isLabeled && event.label == Some(label) }
+ val labellings = issue.smartEvents.filter{ event => event.labelOption.exists{ _.name == label } }
labellings.lastOption.map{ _.createdAt.toInstant }
}
}
@@ -48,14 +48,7 @@ package object util {
}
implicit class RichSmartIssueEvent(event: SmartIssueEvent) {
- def isLabeled: Boolean = event.`type` == IssueEvent.LABELED
-
- def label: Option[String] = {
- // FIXME: Use event.label.name once jcabi-github 0.24+ is available
- Try {Option[JsonObject](event.json.getJsonObject("label")).map {_.getString("name")}}.recoverWith {
- case _: ClassCastException => Success(None)
- }.get
- }
+ def labelOption: Option[Label] = event.label.toOption
}
implicit class RichComment(comment: Comment) {
diff --git a/src/main/scala/com/getbootstrap/no_carrier/util/package.scala b/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
index fcdce67..ef0297d 100644
--- a/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
+++ b/src/main/scala/com/getbootstrap/no_carrier/util/package.scala
@@ -1,6 +1,7 @@
package com.getbootstrap.no_carrier
import java.time.{Clock, Instant, Duration}
+import com.google.common.base.{Optional=>GuavaOptional}
package object util {
val InstantOrdering = implicitly[Ordering[Instant]]
@@ -15,4 +16,15 @@ package object util {
deadline < now
}
}
+
+ implicit class GoogleToScalaOptional[T](option: GuavaOptional[T]) {
+ def toOption: Option[T] = {
+ if (option.isPresent) {
+ Some(option.get())
+ }
+ else {
+ None
+ }
+ }
+ }
}