Skip to content

Commit bf29601

Browse files
authored
Add mainargs.Parser as a shorthand alias for ParserForMethods and ParserForClass (#201)
The two factory objects have distinct APIs, so we can combine them onto one `Parser` factory object that just always does the right thing. For binary compatibility reasons, all the older APIs and class layout are left unchanged
1 parent 7321658 commit bf29601

35 files changed

+99
-97
lines changed

build.mill

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
//| mill-version: 1.0.0
1+
//| mill-version: 1.0.6
2+
//| mill-jvm-version: 11
23
//| mvnDeps:
34
//| - com.github.lolgab::mill-mima_mill1:0.2.0
45

@@ -30,7 +31,7 @@ trait MainArgsPublishModule
3031

3132
def publishVersion = VcsVersion.vcsState().format()
3233

33-
override def mimaPreviousVersions = Seq("0.6.0")
34+
override def mimaPreviousVersions = Seq("0.7.0", "0.7.1", "0.7.2", "0.7.3", "0.7.4", "0.7.5", "0.7.6")
3435

3536
def mimaReportBinaryIssues() =
3637
if (this.isInstanceOf[ScalaNativeModule] || this.isInstanceOf[ScalaJSModule]) Task.Command{}

example/caseclass/src/Main.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ object Main {
1212
bool: Flag = Flag()
1313
)
1414
def main(args: Array[String]): Unit = {
15-
val config = ParserForClass[Config].constructOrExit(args)
15+
val config = Parser[Config].constructOrExit(args)
1616
println(config)
1717
}
1818
}

example/classarg/src/Main.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.classarg
2-
import mainargs.{main, arg, ParserForMethods, ParserForClass, Flag}
2+
import mainargs.{main, arg, Parser, ParserForClass, Flag}
33

44
object Main {
55
@main
@@ -11,7 +11,7 @@ object Main {
1111
@arg(doc = "Example flag")
1212
bool: Flag = Flag()
1313
)
14-
implicit def configParser = ParserForClass[Config]
14+
implicit def configParser = Parser[Config]
1515

1616
@main
1717
def bar(
@@ -26,5 +26,5 @@ object Main {
2626
println((config.foo * config.myNum + " " + config.bool.value + "\n") * n)
2727
}
2828

29-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
29+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
3030
}

example/custom/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.custom
2-
import mainargs.{main, arg, ParserForMethods, TokensReader}
2+
import mainargs.{main, arg, Parser, TokensReader}
33

44
object Main {
55
implicit object PathRead extends TokensReader[os.Path](
@@ -12,5 +12,5 @@ object Main {
1212
println("to: " + to)
1313
}
1414

15-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
15+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
1616
}

example/hello/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.hello
2-
import mainargs.{main, arg, ParserForMethods, Flag}
2+
import mainargs.{main, arg, Parser, Flag}
33

44
object Main {
55
@main
@@ -14,5 +14,5 @@ object Main {
1414
println(foo * myNum + " " + bool.value)
1515
}
1616

17-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
17+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
1818
}

example/hello2/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.hello2
2-
import mainargs.{main, arg, ParserForMethods, Flag}
2+
import mainargs.{main, arg, Parser, Flag}
33

44
object Main {
55
@main
@@ -21,5 +21,5 @@ object Main {
2121
) = {
2222
println(s * i)
2323
}
24-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
24+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
2525
}

example/optseq/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.optseq
2-
import mainargs.{main, arg, ParserForMethods, TokensReader}
2+
import mainargs.{main, arg, Parser, TokensReader}
33

44
object Main {
55
@main
@@ -11,5 +11,5 @@ object Main {
1111
@main
1212
def runVec(seq: Vector[Int]) = println(seq)
1313

14-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
14+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
1515
}

example/short/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package example.hello
2-
import mainargs.{main, arg, ParserForMethods, Flag}
2+
import mainargs.{main, arg, Parser, Flag}
33

44
object Main {
55
@main
@@ -8,5 +8,5 @@ object Main {
88
@main
99
def strs(a: Flag, b: String) = println(Seq(a.value, b))
1010

11-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
11+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
1212
}

example/vararg/src/Main.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package example.vararg
2-
import mainargs.{main, arg, ParserForMethods, Leftover}
2+
import mainargs.{main, arg, Parser, Leftover}
33

44
object Main {
55
@main
66
def run(foo: String, myNum: Int = 2, rest: Leftover[String]) = {
77
println(foo * myNum + " " + rest.value)
88
}
99

10-
def main(args: Array[String]): Unit = ParserForMethods(this).runOrExit(args)
10+
def main(args: Array[String]): Unit = Parser(this).runOrExit(args)
1111
}

example/vararg2/src/Main.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ object Main {
66
case class Config(foo: String, myNum: Int = 2, rest: Leftover[String])
77

88
def main(args: Array[String]): Unit = {
9-
val config = ParserForClass[Config].constructOrExit(args)
9+
val config = Parser[Config].constructOrExit(args)
1010
println(config)
1111
}
1212
}

0 commit comments

Comments
 (0)