Skip to content
This repository has been archived by the owner on Oct 10, 2021. It is now read-only.

Commit

Permalink
Add methods to SemanticVersion
Browse files Browse the repository at this point in the history
Add `SemanticVersion.version` and
`SemanticVersion.extension`.
  • Loading branch information
NthPortal committed Jul 14, 2017
1 parent dc38f27 commit dd46a96
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
21 changes: 21 additions & 0 deletions src/main/scala/com/nthportal/versions/semver/SemanticVersion.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,27 @@ package semver
*/
final case class SemanticVersion[E, M](extendedVersion: v3.ExtendedVersion[E], buildMetadata: Option[M])
extends Ordered[SemanticVersion[E, _]] {

/**
* Returns the [[v3.Version version]] portion of this SemVer version.
*
* This method is equivalent to [[v3.ExtendedVersion.version]].
*
* @return the version portion of this SemVer version
*/
@inline
def version: v3.Version = extendedVersion.version

/**
* Returns the extension portion of this SemVer version.
*
* This method is equivalent to [[v3.ExtendedVersion.version]].
*
* @return the extension portion of this SemVer version
*/
@inline
def extension: E = extendedVersion.extension

override def compare(that: SemanticVersion[E, _]): Int = this.extendedVersion compare that.extendedVersion

override def toString = extendedVersion.toString + {
Expand Down
5 changes: 1 addition & 4 deletions src/main/scala/com/nthportal/versions/semver/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,7 @@ package object semver {
(implicit ed: ExtensionDef[E],
ep: ExtensionParser[E],
mp: BuildMetadata.Parser[M]): Option[(v3.Version, E, Option[M])] = {
parseSemVerAsOption(version) map { semVer =>
val ev = semVer.extendedVersion
(ev.version, ev.extension, semVer.buildMetadata)
}
parseSemVerAsOption(version) map { semVer => (semVer.version, semVer.extension, semVer.buildMetadata) }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ import com.nthportal.versions.semver.BuildMetadata._
class SemanticVersionTest extends SimpleSpec {
behavior of "SemanticVersion"

it should "return the correct version and extension" in {
val v = v3.V(1, 0, 0) -- Snapshot + 12654

v.version should be theSameInstanceAs v.extendedVersion.version
v.extension should be theSameInstanceAs v.extendedVersion.extension
}

it should "define equality correctly" in {
val v0 = parseSemVer("1.0.0-SNAPSHOT+build.12654")
v0.buildMetadata.value shouldBe "build.12654"
Expand Down

0 comments on commit dd46a96

Please sign in to comment.