From 4fa56e5177257e43149bca4b7b05ca5b32e03172 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Mon, 14 Mar 2016 00:47:59 -0700 Subject: Make implicit classes also value classes to decrease overhead --- .../com/getbootstrap/savage/github/util/package.scala | 12 ++++++------ .../scala/com/getbootstrap/savage/util/package.scala | 16 ++++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/scala/com/getbootstrap/savage/github/util/package.scala b/src/main/scala/com/getbootstrap/savage/github/util/package.scala index c62f5e8..d15acd3 100644 --- a/src/main/scala/com/getbootstrap/savage/github/util/package.scala +++ b/src/main/scala/com/getbootstrap/savage/github/util/package.scala @@ -7,7 +7,7 @@ import com.getbootstrap.savage.github.pr_action.PullRequestAction package object util { private val SafeRepoRegex = "^[0-9a-zA-Z_.-]+/[0-9a-zA-Z_.-]+$".r - implicit class RichRepository(repo: Repository) { + implicit class RichRepository(val repo: Repository) extends AnyVal { def repositoryId: Option[RepositoryId] = { val repoId = new RepositoryId(repo.getOwner.getLogin, repo.getName) repo.generateId match { @@ -16,23 +16,23 @@ package object util { } } } - implicit class RichPullRequestMarker(marker: PullRequestMarker) { + implicit class RichPullRequestMarker(val marker: PullRequestMarker) extends AnyVal { def commitSha: CommitSha = CommitSha(marker.getSha).getOrElse{ throw new IllegalStateException(s"Invalid commit SHA: ${marker.getSha}") } def branch: Option[Branch] = Branch(marker.getRef) } - implicit class RichCommitFile(file: CommitFile) { + implicit class RichCommitFile(val file: CommitFile) extends AnyVal { } - implicit class RichPullRequest(pr: PullRequest) { + implicit class RichPullRequest(val pr: PullRequest) extends AnyVal { import org.eclipse.egit.github.core.service.IssueService def number: PullRequestNumber = PullRequestNumber(pr.getNumber).get def isOpen: Boolean = (pr.getState == IssueService.STATE_OPEN) } - implicit class RichRepositoryId(repoId: RepositoryId) { + implicit class RichRepositoryId(val repoId: RepositoryId) extends AnyVal { def asPushRemote: String = s"git@github.com:${repoId.generateId}.git" def asPullRemote: String = s"https://github.com/${repoId.generateId}.git" } - implicit class RichPullRequestPayload(payload: PullRequestPayload) { + implicit class RichPullRequestPayload(val payload: PullRequestPayload) extends AnyVal { def action: PullRequestAction = PullRequestAction(payload.getAction).get } } diff --git a/src/main/scala/com/getbootstrap/savage/util/package.scala b/src/main/scala/com/getbootstrap/savage/util/package.scala index e728f02..8c452b5 100644 --- a/src/main/scala/com/getbootstrap/savage/util/package.scala +++ b/src/main/scala/com/getbootstrap/savage/util/package.scala @@ -12,15 +12,15 @@ package object util { val utf8Name = "UTF-8" private val utf8 = Charset.forName(utf8Name) - implicit class Utf8String(str: String) { + implicit class Utf8String(val str: String) extends AnyVal { def utf8Bytes: Array[Byte] = str.getBytes(utf8) } - implicit class Utf8ByteArray(bytes: Array[Byte]) { + implicit class Utf8ByteArray(val bytes: Array[Byte]) extends AnyVal { def utf8String: Try[String] = Try { new String(bytes, utf8) } } - implicit class PrefixedString(str: String) { + implicit class PrefixedString(val str: String) extends AnyVal { def unprefix(prefix: String): Option[String] = { if (str.startsWith(prefix)) { Some(str.stripPrefix(prefix)) @@ -44,12 +44,12 @@ package object util { } } } - implicit class UnixFileSystemString(str: String) { + implicit class UnixFileSystemString(val str: String) extends AnyVal { def asUnixGlob = UnixFileSystemString.unixFileSystem.getPathMatcher("glob:" + str) def asUnixPath = UnixFileSystemString.unixFileSystem.getPath(str) } - implicit class RichInputStream(stream: InputStream) { + implicit class RichInputStream(val stream: InputStream) extends AnyVal { def readUntilEofAsSingleUtf8String: String = { val scanner = new Scanner(stream, utf8Name).useDelimiter("\\A") val string = if (scanner.hasNext) { @@ -63,12 +63,12 @@ package object util { } } - implicit class HexByteArray(array: Array[Byte]) { + implicit class HexByteArray(val array: Array[Byte]) extends AnyVal { import javax.xml.bind.DatatypeConverter def asHexBytes: String = DatatypeConverter.printHexBinary(array).toLowerCase } - implicit class RichPath(path: Path) { + implicit class RichPath(val path: Path) extends AnyVal { @throws[SecurityException] def deleteRecursively()(implicit log: LoggingAdapter) { try { @@ -83,7 +83,7 @@ package object util { } } - implicit class RichConfig(config: Config) { + implicit class RichConfig(val config: Config) extends AnyVal { import java.util.concurrent.TimeUnit import scala.concurrent.duration.FiniteDuration -- cgit v1.2.3