Skip to content
This repository was archived by the owner on May 15, 2023. It is now read-only.

Commit 5ff4e84

Browse files
committed
Support slash-separated lists
1 parent 0de8deb commit 5ff4e84

File tree

4 files changed

+113
-1
lines changed

4 files changed

+113
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.0.0-beta.10
2+
3+
* Support slash-separated lists.
4+
15
## 1.0.0-beta.9
26

37
* No user-visible changes.

lib/src/value.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ ListSeparator _protofySeparator(sass.ListSeparator separator) {
7070
return ListSeparator.COMMA;
7171
case sass.ListSeparator.space:
7272
return ListSeparator.SPACE;
73+
case sass.ListSeparator.slash:
74+
return ListSeparator.SLASH;
7375
case sass.ListSeparator.undecided:
7476
return ListSeparator.UNDECIDED;
7577
default:
@@ -190,6 +192,8 @@ sass.ListSeparator _deprotofySeparator(ListSeparator separator) {
190192
return sass.ListSeparator.comma;
191193
case ListSeparator.SPACE:
192194
return sass.ListSeparator.space;
195+
case ListSeparator.SLASH:
196+
return sass.ListSeparator.slash;
193197
case ListSeparator.UNDECIDED:
194198
return sass.ListSeparator.undecided;
195199
default:

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: sass_embedded
2-
version: 1.0.0-beta.9
2+
version: 1.0.0-dev
33
description: An implementation of the Sass embedded protocol using Dart Sass.
44
author: Sass Team
55
homepage: https://github.com/sass/dart-sass-embedded

test/function_test.dart

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,14 @@ void main() {
497497
expect(list.hasBrackets, isTrue);
498498
expect(list.separator, equals(ListSeparator.SPACE));
499499
});
500+
501+
test("with a slash separator", () async {
502+
var list =
503+
(await _protofy(r"list.join([], [], $separator: slash)")).list;
504+
expect(list.contents, isEmpty);
505+
expect(list.hasBrackets, isTrue);
506+
expect(list.separator, equals(ListSeparator.SLASH));
507+
});
500508
});
501509

502510
group("without brackets", () {
@@ -522,6 +530,14 @@ void main() {
522530
expect(list.hasBrackets, isFalse);
523531
expect(list.separator, equals(ListSeparator.SPACE));
524532
});
533+
534+
test("with a slash separator", () async {
535+
var list =
536+
(await _protofy(r"list.join((), (), $separator: slash)")).list;
537+
expect(list.contents, isEmpty);
538+
expect(list.hasBrackets, isFalse);
539+
expect(list.separator, equals(ListSeparator.SLASH));
540+
});
525541
});
526542
});
527543

@@ -549,6 +565,15 @@ void main() {
549565
expect(list.hasBrackets, isTrue);
550566
expect(list.separator, equals(ListSeparator.SPACE));
551567
});
568+
569+
test("with a slash separator", () async {
570+
var list =
571+
(await _protofy(r"list.join([true], [], $separator: slash)"))
572+
.list;
573+
expect(list.contents, equals([_true]));
574+
expect(list.hasBrackets, isTrue);
575+
expect(list.separator, equals(ListSeparator.SLASH));
576+
});
552577
});
553578

554579
group("without brackets", () {
@@ -567,6 +592,15 @@ void main() {
567592
expect(list.hasBrackets, isFalse);
568593
expect(list.separator, equals(ListSeparator.SPACE));
569594
});
595+
596+
test("with a slash separator", () async {
597+
var list =
598+
(await _protofy(r"list.join(true, (), $separator: slash)"))
599+
.list;
600+
expect(list.contents, equals([_true]));
601+
expect(list.hasBrackets, isFalse);
602+
expect(list.separator, equals(ListSeparator.SLASH));
603+
});
570604
});
571605
});
572606

@@ -601,6 +635,13 @@ void main() {
601635
expect(list.hasBrackets, isFalse);
602636
expect(list.separator, equals(ListSeparator.SPACE));
603637
});
638+
639+
test("with a slash separator", () async {
640+
var list = (await _protofy(r"list.slash(true, null, false)")).list;
641+
expect(list.contents, equals([_true, _null, _false]));
642+
expect(list.hasBrackets, isFalse);
643+
expect(list.separator, equals(ListSeparator.SLASH));
644+
});
604645
});
605646
});
606647
});
@@ -895,6 +936,15 @@ void main() {
895936
..separator = ListSeparator.SPACE),
896937
"[]");
897938
});
939+
940+
group("with a slash separator", () {
941+
_testSerializationAndRoundTrip(
942+
Value()
943+
..list = (Value_List()
944+
..hasBrackets = true
945+
..separator = ListSeparator.SLASH),
946+
"[]");
947+
});
898948
});
899949

900950
group("without brackets", () {
@@ -927,6 +977,16 @@ void main() {
927977
"()",
928978
inspect: true);
929979
});
980+
981+
group("with a slash separator", () {
982+
_testSerializationAndRoundTrip(
983+
Value()
984+
..list = (Value_List()
985+
..hasBrackets = false
986+
..separator = ListSeparator.SLASH),
987+
"()",
988+
inspect: true);
989+
});
930990
});
931991
});
932992

@@ -963,6 +1023,16 @@ void main() {
9631023
..separator = ListSeparator.SPACE),
9641024
"[true]");
9651025
});
1026+
1027+
group("with a slash separator", () {
1028+
_testSerializationAndRoundTrip(
1029+
Value()
1030+
..list = (Value_List()
1031+
..contents.add(_true)
1032+
..hasBrackets = true
1033+
..separator = ListSeparator.SLASH),
1034+
"[true]");
1035+
});
9661036
});
9671037

9681038
group("without brackets", () {
@@ -997,6 +1067,16 @@ void main() {
9971067
..separator = ListSeparator.SPACE),
9981068
"true");
9991069
});
1070+
1071+
group("with a slash separator", () {
1072+
_testSerializationAndRoundTrip(
1073+
Value()
1074+
..list = (Value_List()
1075+
..contents.add(_true)
1076+
..hasBrackets = false
1077+
..separator = ListSeparator.SLASH),
1078+
"true");
1079+
});
10001080
});
10011081
});
10021082

@@ -1025,6 +1105,18 @@ void main() {
10251105
inspect: true),
10261106
"[true null false]");
10271107
});
1108+
1109+
test("with a slash separator", () async {
1110+
expect(
1111+
await _deprotofy(
1112+
Value()
1113+
..list = (Value_List()
1114+
..contents.addAll([_true, _null, _false])
1115+
..hasBrackets = true
1116+
..separator = ListSeparator.SLASH),
1117+
inspect: true),
1118+
"[true / null / false]");
1119+
});
10281120
});
10291121

10301122
group("without brackets", () {
@@ -1051,6 +1143,18 @@ void main() {
10511143
inspect: true),
10521144
"true null false");
10531145
});
1146+
1147+
test("with a slash separator", () async {
1148+
expect(
1149+
await _deprotofy(
1150+
Value()
1151+
..list = (Value_List()
1152+
..contents.addAll([_true, _null, _false])
1153+
..hasBrackets = false
1154+
..separator = ListSeparator.SLASH),
1155+
inspect: true),
1156+
"true / null / false");
1157+
});
10541158
});
10551159
});
10561160
});

0 commit comments

Comments
 (0)