Disallow comma in selector by default
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "nl.astraeus"
|
||||
version = "0.4.20"
|
||||
version = "0.4.21"
|
||||
|
||||
repositories {
|
||||
maven { setUrl("https://dl.bintray.com/kotlin/kotlin-eap") }
|
||||
|
||||
@@ -75,7 +75,8 @@ abstract class CssGenerator {
|
||||
namespace: String = "",
|
||||
indent: String = "",
|
||||
minified: Boolean = false,
|
||||
warnOnRedeclaration: Boolean = true
|
||||
warnOnRedeclaration: Boolean = true,
|
||||
allowCommaInSelector: Boolean = false
|
||||
): String {
|
||||
val builder = StringBuilder()
|
||||
|
||||
@@ -96,6 +97,10 @@ abstract class CssGenerator {
|
||||
css.append(finalStyle.generatePropertyCss(" $indent"))
|
||||
|
||||
if (css.isNotBlank()) {
|
||||
check (allowCommaInSelector || !name.contains(',')) {
|
||||
"Comma is not allowed in selector (option is set in generateCss call)"
|
||||
}
|
||||
|
||||
builder.append("\n$namespace$name".trim())
|
||||
|
||||
//builder.append(" $indent")
|
||||
@@ -144,7 +149,11 @@ abstract class CssGenerator {
|
||||
builder.append("}\n\n")
|
||||
}
|
||||
|
||||
builder.append(finalStyle.generateCss("$namespace$name".trim(), indent))
|
||||
builder.append(finalStyle.generateCss(
|
||||
"$namespace$name".trim(),
|
||||
indent,
|
||||
allowCommaInSelector = allowCommaInSelector
|
||||
))
|
||||
}
|
||||
|
||||
if (this is ConditionalStyle) {
|
||||
@@ -161,7 +170,11 @@ abstract class CssGenerator {
|
||||
|
||||
css(mediaStyle)
|
||||
|
||||
builder.append(mediaStyle.generateCss("", " $indent"))
|
||||
builder.append(mediaStyle.generateCss(
|
||||
"",
|
||||
" $indent",
|
||||
allowCommaInSelector = allowCommaInSelector
|
||||
))
|
||||
}
|
||||
|
||||
builder.append(indent)
|
||||
@@ -182,7 +195,11 @@ abstract class CssGenerator {
|
||||
|
||||
css(mediaStyle)
|
||||
|
||||
builder.append(mediaStyle.generateCss("", " $indent"))
|
||||
builder.append(mediaStyle.generateCss(
|
||||
"",
|
||||
" $indent",
|
||||
allowCommaInSelector = allowCommaInSelector
|
||||
))
|
||||
}
|
||||
|
||||
builder.append(indent)
|
||||
|
||||
@@ -12,6 +12,7 @@ import nl.astraeus.css.style.attrEquals
|
||||
import nl.astraeus.css.style.cls
|
||||
import nl.astraeus.css.style.id
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
class TestCssBuilder {
|
||||
|
||||
@@ -174,4 +175,38 @@ class TestCssBuilder {
|
||||
|
||||
println(css.generateCss())
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
fun testOrWithComma() {
|
||||
val css = style {
|
||||
select("h1") {
|
||||
color(Color.blue)
|
||||
|
||||
select("table") {
|
||||
color(Color.red)
|
||||
|
||||
select("th, td") {
|
||||
color(Color.green)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var excepted = false
|
||||
try {
|
||||
println(css.generateCss())
|
||||
} catch(e: Exception) {
|
||||
excepted = true
|
||||
assertTrue {
|
||||
e is IllegalStateException
|
||||
}
|
||||
assertTrue {
|
||||
e.message?.contains("Comma is not allowed in selector") ?: false
|
||||
}
|
||||
}
|
||||
assertTrue {
|
||||
excepted
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user