diff options
author | Johannes Rudolph <johannes.rudolph@gmail.com> | 2014-07-08 15:04:56 +0200 |
---|---|---|
committer | Johannes Rudolph <johannes.rudolph@gmail.com> | 2014-07-08 15:04:56 +0200 |
commit | 79587ca29b48b9c62dfbcaa6ad3318f623e156a6 (patch) | |
tree | 5ad79320581b4cf173148b01ebe8bf90ff512bc5 | |
parent | 9bb3201a21d0a761646bfcd2bf95db06e2857ab7 (diff) | |
download | sbt-boilerplate-79587ca29b48b9c62dfbcaa6ad3318f623e156a6.tar.gz sbt-boilerplate-79587ca29b48b9c62dfbcaa6ad3318f623e156a6.tar.bz2 sbt-boilerplate-79587ca29b48b9c62dfbcaa6ad3318f623e156a6.zip |
centralize place to define the default separator
-rw-r--r-- | src/main/scala/spray/boilerplate/TemplateParser.scala | 7 | ||||
-rw-r--r-- | src/test/scala/spray/boilerplate/TemplateParserSpecs.scala | 10 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/main/scala/spray/boilerplate/TemplateParser.scala b/src/main/scala/spray/boilerplate/TemplateParser.scala index 408e551..6d8e22d 100644 --- a/src/main/scala/spray/boilerplate/TemplateParser.scala +++ b/src/main/scala/spray/boilerplate/TemplateParser.scala @@ -20,7 +20,10 @@ case class LiteralString(literal: String) extends TemplateElement /* An offset to be replaced by the current index */ case class Offset(i: Int) extends TemplateElement /** A region in which to apply expansions */ -case class Expand(inner: TemplateElement, separator: String) extends TemplateElement +case class Expand(inner: TemplateElement, separator: String = Expand.defaultSeparator) extends TemplateElement +object Expand { + val defaultSeparator = ", " +} object TemplateParser extends RegexParsers { override type Elem = Char @@ -42,7 +45,7 @@ object TemplateParser extends RegexParsers { def outsideTemplate: Parser[LiteralString] = """(?s).+?(?=(\[#)|(\z))""".r ^^ (LiteralString(_)) def expand: Parser[Expand] = "[#" ~> elements ~ "#" ~ separatorChars <~ "]" ^^ { - case els ~ x ~ sep ⇒ Expand(els, sep.getOrElse(", ")) + case els ~ x ~ sep ⇒ Expand(els, sep.getOrElse(Expand.defaultSeparator)) } def outsideElements: Parser[TemplateElement] = rep1(expand | outsideTemplate) ^^ maybeSequence diff --git a/src/test/scala/spray/boilerplate/TemplateParserSpecs.scala b/src/test/scala/spray/boilerplate/TemplateParserSpecs.scala index 1e5e844..85b99af 100644 --- a/src/test/scala/spray/boilerplate/TemplateParserSpecs.scala +++ b/src/test/scala/spray/boilerplate/TemplateParserSpecs.scala @@ -10,20 +10,20 @@ class TemplateParserSpecs extends Specification { parse("abc") === LiteralString("abc") } "just expansion" in { - parse("[# def #]") === Expand(LiteralString(" def "), ", ") + parse("[# def #]") === Expand(LiteralString(" def ")) } "multiple expansions" in { parse("[#a#]abc[#b#]") === - Expand(LiteralString("a"), ", ") ~ LiteralString("abc") ~ Expand(LiteralString("b"), ", ") + Expand(LiteralString("a")) ~ LiteralString("abc") ~ Expand(LiteralString("b")) } "one surrounded expansion" in { - parse("abc[#a#]def") === LiteralString("abc") ~ Expand(LiteralString("a"), ", ") ~ LiteralString("def") + parse("abc[#a#]def") === LiteralString("abc") ~ Expand(LiteralString("a")) ~ LiteralString("def") } "an expanded number" in { - parse("[#T1#]") === Expand(LiteralString("T") ~ Offset(1), ", ") + parse("[#T1#]") === Expand(LiteralString("T") ~ Offset(1)) } "a quoted number" in { - parse("[#T##1#]") === Expand(LiteralString("T1"), ", ") + parse("[#T##1#]") === Expand(LiteralString("T1")) } } } |