All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scalariform.ScalaVersions.scala Maven / Gradle / Ivy

The newest version!
package scalariform

import scala.util.Properties
import scalariform.utils.Utils._
import scala.math.Ordering

object ScalaVersion {

  private val VersionPattern = """(\d+)\.(\d+)\.(.*)""".r

  def parseOrDefault(s: String): ScalaVersion = parse(s).getOrElse(ScalaVersions.DEFAULT)

  def parse(s: String): Option[ScalaVersion] =
    s match {
      case VersionPattern(majorStr, minorStr, extra) =>
        for {
          major <- majorStr.toIntOpt
          minor <- minorStr.toIntOpt
        } yield ScalaVersion(major, minor, extra)
      case _ =>
        None
    }

}

case class ScalaVersion(major: Int, minor: Int, extra: String = "") extends Ordered[ScalaVersion] {

  private def majorMinor = (major, minor)

  def compare(that: ScalaVersion) = Ordering[(Int, Int)].compare(this.majorMinor, that.majorMinor)

  override def toString = major + "." + minor + "." + extra

}

object ScalaVersions {

  val Scala_2_11 = ScalaVersion.parse("2.11.0").get
  val Scala_2_10 = ScalaVersion.parse("2.10.0").get
  val Scala_2_9 = ScalaVersion.parse("2.9.2").get
  val Scala_2_8 = ScalaVersion.parse("2.8.1").get

  lazy val DEFAULT_VERSION = Properties.scalaPropOrElse("version.number", "2.9.2")

  lazy val DEFAULT = ScalaVersion.parse(DEFAULT_VERSION).get

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy