Disallow comma in selector by default
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "nl.astraeus"
|
group = "nl.astraeus"
|
||||||
version = "0.4.20"
|
version = "0.4.21"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { setUrl("https://dl.bintray.com/kotlin/kotlin-eap") }
|
maven { setUrl("https://dl.bintray.com/kotlin/kotlin-eap") }
|
||||||
|
|||||||
@@ -75,7 +75,8 @@ abstract class CssGenerator {
|
|||||||
namespace: String = "",
|
namespace: String = "",
|
||||||
indent: String = "",
|
indent: String = "",
|
||||||
minified: Boolean = false,
|
minified: Boolean = false,
|
||||||
warnOnRedeclaration: Boolean = true
|
warnOnRedeclaration: Boolean = true,
|
||||||
|
allowCommaInSelector: Boolean = false
|
||||||
): String {
|
): String {
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
|
|
||||||
@@ -96,6 +97,10 @@ abstract class CssGenerator {
|
|||||||
css.append(finalStyle.generatePropertyCss(" $indent"))
|
css.append(finalStyle.generatePropertyCss(" $indent"))
|
||||||
|
|
||||||
if (css.isNotBlank()) {
|
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("\n$namespace$name".trim())
|
||||||
|
|
||||||
//builder.append(" $indent")
|
//builder.append(" $indent")
|
||||||
@@ -144,7 +149,11 @@ abstract class CssGenerator {
|
|||||||
builder.append("}\n\n")
|
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) {
|
if (this is ConditionalStyle) {
|
||||||
@@ -161,7 +170,11 @@ abstract class CssGenerator {
|
|||||||
|
|
||||||
css(mediaStyle)
|
css(mediaStyle)
|
||||||
|
|
||||||
builder.append(mediaStyle.generateCss("", " $indent"))
|
builder.append(mediaStyle.generateCss(
|
||||||
|
"",
|
||||||
|
" $indent",
|
||||||
|
allowCommaInSelector = allowCommaInSelector
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.append(indent)
|
builder.append(indent)
|
||||||
@@ -182,7 +195,11 @@ abstract class CssGenerator {
|
|||||||
|
|
||||||
css(mediaStyle)
|
css(mediaStyle)
|
||||||
|
|
||||||
builder.append(mediaStyle.generateCss("", " $indent"))
|
builder.append(mediaStyle.generateCss(
|
||||||
|
"",
|
||||||
|
" $indent",
|
||||||
|
allowCommaInSelector = allowCommaInSelector
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.append(indent)
|
builder.append(indent)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import nl.astraeus.css.style.attrEquals
|
|||||||
import nl.astraeus.css.style.cls
|
import nl.astraeus.css.style.cls
|
||||||
import nl.astraeus.css.style.id
|
import nl.astraeus.css.style.id
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
class TestCssBuilder {
|
class TestCssBuilder {
|
||||||
|
|
||||||
@@ -174,4 +175,38 @@ class TestCssBuilder {
|
|||||||
|
|
||||||
println(css.generateCss())
|
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