mirror of https://github.com/sbt/sbt.git
Merge pull request #5158 from eatkins/scripted-parser
Scripted parser fixes
This commit is contained in:
commit
22a9fd4de0
|
|
@ -136,7 +136,10 @@ object ScriptedPlugin extends AutoPlugin {
|
|||
val groupP = token(id.examples(pairMap.keySet)) <~ token('/')
|
||||
|
||||
// A parser for page definitions
|
||||
val pageNumber = NatBasic & not('0', "zero page number")
|
||||
val pageNumber = (NatBasic & not('0', "zero page number")).flatMap { i =>
|
||||
if (i <= pairs.size) Parser.success(i)
|
||||
else Parser.failure(s"$i exceeds the number of tests (${pairs.size})")
|
||||
}
|
||||
val pageP: Parser[ScriptedTestPage] = ("*" ~> pageNumber ~ ("of" ~> pageNumber)) flatMap {
|
||||
case (page, total) if page <= total => success(ScriptedTestPage(page, total))
|
||||
case (page, total) => failure(s"Page $page was greater than $total")
|
||||
|
|
@ -144,7 +147,7 @@ object ScriptedPlugin extends AutoPlugin {
|
|||
|
||||
// Grabs the filenames from a given test group in the current page definition.
|
||||
def pagedFilenames(group: String, page: ScriptedTestPage): Seq[String] = {
|
||||
val files = pairMap(group).toSeq.sortBy(_.toLowerCase)
|
||||
val files = pairMap.get(group).toSeq.flatten.sortBy(_.toLowerCase)
|
||||
val pageSize = files.size / page.total
|
||||
// The last page may loose some values, so we explicitly keep them
|
||||
val dropped = files.drop(pageSize * (page.page - 1))
|
||||
|
|
|
|||
|
|
@ -53,7 +53,10 @@ object Scripted {
|
|||
val groupP = token(id.examples(pairMap.keySet)) <~ token('/')
|
||||
|
||||
// A parser for page definitions
|
||||
val pageNumber = NatBasic & not('0', "zero page number")
|
||||
val pageNumber = (NatBasic & not('0', "zero page number")).flatMap { i =>
|
||||
if (i <= pairs.size) Parser.success(i)
|
||||
else Parser.failure(s"$i exceeds the number of tests (${pairs.size})")
|
||||
}
|
||||
val pageP: Parser[ScriptedTestPage] = ("*" ~> pageNumber ~ ("of" ~> pageNumber)) flatMap {
|
||||
case (page, total) if page <= total => success(ScriptedTestPage(page, total))
|
||||
case (page, total) => failure(s"Page $page was greater than $total")
|
||||
|
|
@ -61,7 +64,7 @@ object Scripted {
|
|||
|
||||
// Grabs the filenames from a given test group in the current page definition.
|
||||
def pagedFilenames(group: String, page: ScriptedTestPage): Seq[String] = {
|
||||
val files = pairMap(group).toSeq.sortBy(_.toLowerCase)
|
||||
val files = pairMap.get(group).toSeq.flatten.sortBy(_.toLowerCase)
|
||||
val pageSize = if (page.total == 0) files.size else files.size / page.total
|
||||
// The last page may loose some values, so we explicitly keep them
|
||||
val dropped = files.drop(pageSize * (page.page - 1))
|
||||
|
|
|
|||
Loading…
Reference in New Issue