diff options
author | Jakob Odersky <jakob@odersky.com> | 2018-04-29 13:59:54 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2018-04-29 13:59:54 -0700 |
commit | 4562b1b5754f4b840016be345eb6ee92f5abf258 (patch) | |
tree | 2fdc03ccd75039b3f68b4b7c50d42f8790f412d1 /src/main/scala/definitions.scala | |
parent | cecdb1476341ed4160ac95a0736fbbe58a187a27 (diff) | |
download | commando-4562b1b5754f4b840016be345eb6ee92f5abf258.tar.gz commando-4562b1b5754f4b840016be345eb6ee92f5abf258.tar.bz2 commando-4562b1b5754f4b840016be345eb6ee92f5abf258.zip |
Rename parameters and commands
Diffstat (limited to 'src/main/scala/definitions.scala')
-rw-r--r-- | src/main/scala/definitions.scala | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/main/scala/definitions.scala b/src/main/scala/definitions.scala index cb05532..b009e41 100644 --- a/src/main/scala/definitions.scala +++ b/src/main/scala/definitions.scala @@ -1,12 +1,10 @@ package commando -import scala.{Option => Maybe} - sealed trait Definition -case class Option(long: String, - short: Maybe[Char] = None, - parameter: Maybe[Parameter] = None) +case class Optional(long: String, + short: Option[Char] = None, + parameter: Option[Positional] = None) extends Definition { def argumentAllowed: Boolean = parameter.isDefined def argumentRequired: Boolean = parameter.map(_.required).getOrElse(false) @@ -14,14 +12,14 @@ case class Option(long: String, val shortString = short.map(c => s"-$c|").getOrElse("") val argString = parameter match { case None => "" - case Some(Parameter(argName, false)) => s"[=<$argName>]" - case Some(Parameter(argName, true)) => s"=<$argName>" + case Some(Positional(argName, false)) => s"[=<$argName>]" + case Some(Positional(argName, true)) => s"=<$argName>" } s"[$shortString--$long$argString]" } } -case class Parameter( +case class Positional( name: String, required: Boolean = true ) extends Definition { @@ -29,10 +27,10 @@ case class Parameter( } case class Command( - name: String, - options: Set[Option] = Set.empty, - parameters: Seq[Parameter] = Seq.empty, - commands: Set[Command] = Set.empty + name: String, + options: Set[Optional] = Set.empty, + parameters: Seq[Positional] = Seq.empty, + commands: Set[Command] = Set.empty ) extends Definition { override def toString = name @@ -64,8 +62,8 @@ object Command { def apply(name: String, defs: Definition*): Command = { Command( name, - options = defs.collect { case opt: Option => opt }.toSet, - parameters = defs.collect { case param: Parameter => param }.toSeq, + options = defs.collect { case opt: Optional => opt }.toSet, + parameters = defs.collect { case param: Positional => param }.toSeq, commands = defs.collect { case cmd: Command => cmd }.toSet ) } |