sassc 1.11.1 → 1.11.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/README.md +3 -2
- data/ext/libsass/Makefile.conf +2 -1
- data/ext/libsass/appveyor.yml +10 -5
- data/ext/libsass/docs/dev-ast-memory.md +223 -0
- data/ext/libsass/include/sass/base.h +2 -0
- data/ext/libsass/script/bootstrap +7 -4
- data/ext/libsass/script/ci-build-libsass +3 -3
- data/ext/libsass/script/ci-install-compiler +2 -0
- data/ext/libsass/script/ci-report-coverage +2 -1
- data/ext/libsass/script/test-leaks.pl +103 -0
- data/ext/libsass/src/ast.cpp +621 -495
- data/ext/libsass/src/ast.hpp +801 -367
- data/ext/libsass/src/ast_def_macros.hpp +5 -5
- data/ext/libsass/src/ast_fwd_decl.hpp +312 -14
- data/ext/libsass/src/bind.cpp +54 -51
- data/ext/libsass/src/bind.hpp +3 -7
- data/ext/libsass/src/check_nesting.cpp +117 -120
- data/ext/libsass/src/check_nesting.hpp +38 -34
- data/ext/libsass/src/color_maps.cpp +3 -3
- data/ext/libsass/src/color_maps.hpp +3 -3
- data/ext/libsass/src/context.cpp +33 -34
- data/ext/libsass/src/context.hpp +12 -14
- data/ext/libsass/src/cssize.cpp +200 -228
- data/ext/libsass/src/cssize.hpp +49 -49
- data/ext/libsass/src/debugger.hpp +260 -241
- data/ext/libsass/src/emitter.cpp +6 -6
- data/ext/libsass/src/emitter.hpp +7 -7
- data/ext/libsass/src/environment.cpp +2 -2
- data/ext/libsass/src/environment.hpp +0 -2
- data/ext/libsass/src/error_handling.cpp +5 -5
- data/ext/libsass/src/error_handling.hpp +12 -12
- data/ext/libsass/src/eval.cpp +412 -401
- data/ext/libsass/src/eval.hpp +61 -62
- data/ext/libsass/src/expand.cpp +223 -204
- data/ext/libsass/src/expand.hpp +42 -42
- data/ext/libsass/src/extend.cpp +198 -201
- data/ext/libsass/src/extend.hpp +12 -14
- data/ext/libsass/src/file.hpp +4 -5
- data/ext/libsass/src/functions.cpp +413 -418
- data/ext/libsass/src/functions.hpp +7 -10
- data/ext/libsass/src/inspect.cpp +115 -109
- data/ext/libsass/src/inspect.hpp +69 -69
- data/ext/libsass/src/listize.cpp +31 -33
- data/ext/libsass/src/listize.hpp +8 -10
- data/ext/libsass/src/memory/SharedPtr.cpp +116 -0
- data/ext/libsass/src/memory/SharedPtr.hpp +202 -0
- data/ext/libsass/src/node.cpp +45 -43
- data/ext/libsass/src/node.hpp +15 -15
- data/ext/libsass/src/operation.hpp +136 -136
- data/ext/libsass/src/output.cpp +48 -49
- data/ext/libsass/src/output.hpp +14 -14
- data/ext/libsass/src/parser.cpp +530 -554
- data/ext/libsass/src/parser.hpp +91 -96
- data/ext/libsass/src/prelexer.cpp +13 -10
- data/ext/libsass/src/remove_placeholders.cpp +25 -21
- data/ext/libsass/src/remove_placeholders.hpp +7 -7
- data/ext/libsass/src/sass2scss.cpp +2 -1
- data/ext/libsass/src/sass_context.cpp +125 -107
- data/ext/libsass/src/sass_context.hpp +1 -1
- data/ext/libsass/src/sass_util.hpp +5 -5
- data/ext/libsass/src/sass_values.cpp +27 -27
- data/ext/libsass/src/source_map.cpp +2 -2
- data/ext/libsass/src/source_map.hpp +2 -2
- data/ext/libsass/src/subset_map.cpp +57 -0
- data/ext/libsass/src/subset_map.hpp +8 -76
- data/ext/libsass/src/to_c.cpp +13 -13
- data/ext/libsass/src/to_c.hpp +14 -14
- data/ext/libsass/src/to_value.cpp +20 -20
- data/ext/libsass/src/to_value.hpp +20 -21
- data/ext/libsass/src/util.cpp +55 -88
- data/ext/libsass/src/util.hpp +9 -13
- data/ext/libsass/src/values.cpp +27 -26
- data/ext/libsass/src/values.hpp +2 -2
- data/ext/libsass/test/test_subset_map.cpp +69 -69
- data/ext/libsass/win/libsass.targets +3 -2
- data/ext/libsass/win/libsass.vcxproj.filters +9 -6
- data/lib/sassc/version.rb +1 -1
- data/sassc.gemspec +0 -1
- data/test/native_test.rb +1 -1
- metadata +7 -5
- data/ext/libsass/src/ast_factory.hpp +0 -92
- data/ext/libsass/src/memory_manager.cpp +0 -77
- data/ext/libsass/src/memory_manager.hpp +0 -48
data/ext/libsass/src/values.hpp
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
|
6
6
|
namespace Sass {
|
7
7
|
|
8
|
-
union Sass_Value* ast_node_to_sass_value (const
|
9
|
-
|
8
|
+
union Sass_Value* ast_node_to_sass_value (const Expression_Ptr val);
|
9
|
+
Value_Ptr sass_value_to_ast_node (const union Sass_Value* val);
|
10
10
|
|
11
11
|
}
|
12
12
|
#endif
|
@@ -11,39 +11,39 @@ void assertEqual(string std::sExpected, std::string sResult);
|
|
11
11
|
|
12
12
|
void setup() {
|
13
13
|
ssm.clear();
|
14
|
-
|
14
|
+
|
15
15
|
//@ssm[Set[1, 2]] = "Foo"
|
16
16
|
std::vector<std::string> s1;
|
17
17
|
s1.push_back("1");
|
18
18
|
s1.push_back("2");
|
19
19
|
ssm.put(s1, "Foo");
|
20
|
-
|
20
|
+
|
21
21
|
//@ssm[Set["fizz", "fazz"]] = "Bar"
|
22
22
|
std::vector<std::string> s2;
|
23
23
|
s2.push_back("fizz");
|
24
24
|
s2.push_back("fazz");
|
25
25
|
ssm.put(s2, "Bar");
|
26
|
-
|
26
|
+
|
27
27
|
//@ssm[Set[:foo, :bar]] = "Baz"
|
28
28
|
std::vector<std::string> s3;
|
29
29
|
s3.push_back(":foo");
|
30
30
|
s3.push_back(":bar");
|
31
31
|
ssm.put(s3, "Baz");
|
32
|
-
|
32
|
+
|
33
33
|
//@ssm[Set[:foo, :bar, :baz]] = "Bang"
|
34
34
|
std::vector<std::string> s4;
|
35
35
|
s4.push_back(":foo");
|
36
36
|
s4.push_back(":bar");
|
37
37
|
s4.push_back(":baz");
|
38
38
|
ssm.put(s4, "Bang");
|
39
|
-
|
39
|
+
|
40
40
|
//@ssm[Set[:bip, :bop, :blip]] = "Qux"
|
41
41
|
std::vector<std::string> s5;
|
42
42
|
s5.push_back(":bip");
|
43
43
|
s5.push_back(":bop");
|
44
44
|
s5.push_back(":blip");
|
45
45
|
ssm.put(s5, "Qux");
|
46
|
-
|
46
|
+
|
47
47
|
//@ssm[Set[:bip, :bop]] = "Thram"
|
48
48
|
std::vector<std::string> s6;
|
49
49
|
s6.push_back(":bip");
|
@@ -53,119 +53,119 @@ void setup() {
|
|
53
53
|
|
54
54
|
void testEqualKeys() {
|
55
55
|
std::cout << "testEqualKeys" << std::endl;
|
56
|
-
|
56
|
+
|
57
57
|
//assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2])
|
58
58
|
std::vector<std::string> k1;
|
59
59
|
k1.push_back("1");
|
60
60
|
k1.push_back("2");
|
61
61
|
assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
|
62
|
-
|
62
|
+
|
63
63
|
//assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz"])
|
64
64
|
std::vector<std::string> k2;
|
65
65
|
k2.push_back("fizz");
|
66
66
|
k2.push_back("fazz");
|
67
67
|
assertEqual("[[Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
|
68
|
-
|
68
|
+
|
69
69
|
std::cout << std::endl;
|
70
70
|
}
|
71
71
|
|
72
72
|
void testSubsetKeys() {
|
73
73
|
std::cout << "testSubsetKeys" << std::endl;
|
74
|
-
|
74
|
+
|
75
75
|
//assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[1, 2, "fuzz"])
|
76
76
|
std::vector<std::string> k1;
|
77
77
|
k1.push_back("1");
|
78
78
|
k1.push_back("2");
|
79
79
|
k1.push_back("fuzz");
|
80
80
|
assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
|
81
|
-
|
81
|
+
|
82
82
|
//assert_equal [["Bar", Set["fizz", "fazz"]]], @ssm.get(Set["fizz", "fazz", 3])
|
83
83
|
std::vector<std::string> k2;
|
84
84
|
k2.push_back("fizz");
|
85
85
|
k2.push_back("fazz");
|
86
86
|
k2.push_back("3");
|
87
87
|
assertEqual("[[Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
|
88
|
-
|
88
|
+
|
89
89
|
std::cout << std::endl;
|
90
90
|
}
|
91
91
|
|
92
92
|
void testSupersetKeys() {
|
93
93
|
std::cout << "testSupersetKeys" << std::endl;
|
94
|
-
|
94
|
+
|
95
95
|
//assert_equal [], @ssm.get(Set[1])
|
96
96
|
std::vector<std::string> k1;
|
97
97
|
k1.push_back("1");
|
98
98
|
assertEqual("[]", toString(ssm.get_kv(k1)));
|
99
|
-
|
99
|
+
|
100
100
|
//assert_equal [], @ssm.get(Set[2])
|
101
101
|
std::vector<std::string> k2;
|
102
102
|
k2.push_back("2");
|
103
103
|
assertEqual("[]", toString(ssm.get_kv(k2)));
|
104
|
-
|
104
|
+
|
105
105
|
//assert_equal [], @ssm.get(Set["fizz"])
|
106
106
|
std::vector<std::string> k3;
|
107
107
|
k3.push_back("fizz");
|
108
108
|
assertEqual("[]", toString(ssm.get_kv(k3)));
|
109
|
-
|
109
|
+
|
110
110
|
//assert_equal [], @ssm.get(Set["fazz"])
|
111
111
|
std::vector<std::string> k4;
|
112
112
|
k4.push_back("fazz");
|
113
113
|
assertEqual("[]", toString(ssm.get_kv(k4)));
|
114
|
-
|
114
|
+
|
115
115
|
std::cout << std::endl;
|
116
116
|
}
|
117
117
|
|
118
118
|
void testDisjointKeys() {
|
119
119
|
std::cout << "testDisjointKeys" << std::endl;
|
120
|
-
|
120
|
+
|
121
121
|
//assert_equal [], @ssm.get(Set[3, 4])
|
122
122
|
std::vector<std::string> k1;
|
123
123
|
k1.push_back("3");
|
124
124
|
k1.push_back("4");
|
125
125
|
assertEqual("[]", toString(ssm.get_kv(k1)));
|
126
|
-
|
126
|
+
|
127
127
|
//assert_equal [], @ssm.get(Set["fuzz", "frizz"])
|
128
128
|
std::vector<std::string> k2;
|
129
129
|
k2.push_back("fuzz");
|
130
130
|
k2.push_back("frizz");
|
131
131
|
assertEqual("[]", toString(ssm.get_kv(k2)));
|
132
|
-
|
132
|
+
|
133
133
|
//assert_equal [], @ssm.get(Set["gran", 15])
|
134
134
|
std::vector<std::string> k3;
|
135
135
|
k3.push_back("gran");
|
136
136
|
k3.push_back("15");
|
137
137
|
assertEqual("[]", toString(ssm.get_kv(k3)));
|
138
|
-
|
138
|
+
|
139
139
|
std::cout << std::endl;
|
140
140
|
}
|
141
141
|
|
142
142
|
void testSemiDisjointKeys() {
|
143
143
|
std::cout << "testSemiDisjointKeys" << std::endl;
|
144
|
-
|
144
|
+
|
145
145
|
//assert_equal [], @ssm.get(Set[2, 3])
|
146
146
|
std::vector<std::string> k1;
|
147
147
|
k1.push_back("2");
|
148
148
|
k1.push_back("3");
|
149
149
|
assertEqual("[]", toString(ssm.get_kv(k1)));
|
150
|
-
|
150
|
+
|
151
151
|
//assert_equal [], @ssm.get(Set["fizz", "fuzz"])
|
152
152
|
std::vector<std::string> k2;
|
153
153
|
k2.push_back("fizz");
|
154
154
|
k2.push_back("fuzz");
|
155
155
|
assertEqual("[]", toString(ssm.get_kv(k2)));
|
156
|
-
|
156
|
+
|
157
157
|
//assert_equal [], @ssm.get(Set[1, "fazz"])
|
158
158
|
std::vector<std::string> k3;
|
159
159
|
k3.push_back("1");
|
160
160
|
k3.push_back("fazz");
|
161
161
|
assertEqual("[]", toString(ssm.get_kv(k3)));
|
162
|
-
|
162
|
+
|
163
163
|
std::cout << std::endl;
|
164
164
|
}
|
165
165
|
|
166
166
|
void testEmptyKeySet() {
|
167
167
|
std::cout << "testEmptyKeySet" << std::endl;
|
168
|
-
|
168
|
+
|
169
169
|
//assert_raises(ArgumentError) {@ssm[Set[]] = "Fail"}
|
170
170
|
std::vector<std::string> s1;
|
171
171
|
try {
|
@@ -178,16 +178,16 @@ void testEmptyKeySet() {
|
|
178
178
|
|
179
179
|
void testEmptyKeyGet() {
|
180
180
|
std::cout << "testEmptyKeyGet" << std::endl;
|
181
|
-
|
181
|
+
|
182
182
|
//assert_equal [], @ssm.get(Set[])
|
183
183
|
std::vector<std::string> k1;
|
184
184
|
assertEqual("[]", toString(ssm.get_kv(k1)));
|
185
|
-
|
185
|
+
|
186
186
|
std::cout << std::endl;
|
187
187
|
}
|
188
188
|
void testMultipleSubsets() {
|
189
189
|
std::cout << "testMultipleSubsets" << std::endl;
|
190
|
-
|
190
|
+
|
191
191
|
//assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, "fizz", "fazz"])
|
192
192
|
std::vector<std::string> k1;
|
193
193
|
k1.push_back("1");
|
@@ -195,7 +195,7 @@ void testMultipleSubsets() {
|
|
195
195
|
k1.push_back("fizz");
|
196
196
|
k1.push_back("fazz");
|
197
197
|
assertEqual("[[Foo, Set[1, 2]], [Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k1)));
|
198
|
-
|
198
|
+
|
199
199
|
//assert_equal [["Foo", Set[1, 2]], ["Bar", Set["fizz", "fazz"]]], @ssm.get(Set[1, 2, 3, "fizz", "fazz", "fuzz"])
|
200
200
|
std::vector<std::string> k2;
|
201
201
|
k2.push_back("1");
|
@@ -205,51 +205,51 @@ void testMultipleSubsets() {
|
|
205
205
|
k2.push_back("fazz");
|
206
206
|
k2.push_back("fuzz");
|
207
207
|
assertEqual("[[Foo, Set[1, 2]], [Bar, Set[fizz, fazz]]]", toString(ssm.get_kv(k2)));
|
208
|
-
|
208
|
+
|
209
209
|
//assert_equal [["Baz", Set[:foo, :bar]]], @ssm.get(Set[:foo, :bar])
|
210
210
|
std::vector<std::string> k3;
|
211
211
|
k3.push_back(":foo");
|
212
212
|
k3.push_back(":bar");
|
213
213
|
assertEqual("[[Baz, Set[:foo, :bar]]]", toString(ssm.get_kv(k3)));
|
214
|
-
|
214
|
+
|
215
215
|
//assert_equal [["Baz", Set[:foo, :bar]], ["Bang", Set[:foo, :bar, :baz]]], @ssm.get(Set[:foo, :bar, :baz])
|
216
216
|
std::vector<std::string> k4;
|
217
217
|
k4.push_back(":foo");
|
218
218
|
k4.push_back(":bar");
|
219
219
|
k4.push_back(":baz");
|
220
220
|
assertEqual("[[Baz, Set[:foo, :bar]], [Bang, Set[:foo, :bar, :baz]]]", toString(ssm.get_kv(k4)));
|
221
|
-
|
221
|
+
|
222
222
|
std::cout << std::endl;
|
223
223
|
}
|
224
224
|
void testBracketBracket() {
|
225
225
|
std::cout << "testBracketBracket" << std::endl;
|
226
|
-
|
226
|
+
|
227
227
|
//assert_equal ["Foo"], @ssm[Set[1, 2, "fuzz"]]
|
228
228
|
std::vector<std::string> k1;
|
229
229
|
k1.push_back("1");
|
230
230
|
k1.push_back("2");
|
231
231
|
k1.push_back("fuzz");
|
232
232
|
assertEqual("[Foo]", toString(ssm.get_v(k1)));
|
233
|
-
|
233
|
+
|
234
234
|
//assert_equal ["Baz", "Bang"], @ssm[Set[:foo, :bar, :baz]]
|
235
235
|
std::vector<std::string> k2;
|
236
236
|
k2.push_back(":foo");
|
237
237
|
k2.push_back(":bar");
|
238
238
|
k2.push_back(":baz");
|
239
239
|
assertEqual("[Baz, Bang]", toString(ssm.get_v(k2)));
|
240
|
-
|
240
|
+
|
241
241
|
std::cout << std::endl;
|
242
242
|
}
|
243
243
|
|
244
244
|
void testKeyOrder() {
|
245
245
|
std::cout << "testEqualKeys" << std::endl;
|
246
|
-
|
246
|
+
|
247
247
|
//assert_equal [["Foo", Set[1, 2]]], @ssm.get(Set[2, 1])
|
248
248
|
std::vector<std::string> k1;
|
249
249
|
k1.push_back("2");
|
250
250
|
k1.push_back("1");
|
251
251
|
assertEqual("[[Foo, Set[1, 2]]]", toString(ssm.get_kv(k1)));
|
252
|
-
|
252
|
+
|
253
253
|
std::cout << std::endl;
|
254
254
|
}
|
255
255
|
|
@@ -261,24 +261,24 @@ void testOrderPreserved() {
|
|
261
261
|
s1.push_back("11");
|
262
262
|
s1.push_back("12");
|
263
263
|
ssm.put(s1, "1");
|
264
|
-
|
264
|
+
|
265
265
|
//@ssm[Set[10, 11]] = 2
|
266
266
|
std::vector<std::string> s2;
|
267
267
|
s2.push_back("10");
|
268
268
|
s2.push_back("11");
|
269
269
|
ssm.put(s2, "2");
|
270
|
-
|
270
|
+
|
271
271
|
//@ssm[Set[11]] = 3
|
272
272
|
std::vector<std::string> s3;
|
273
273
|
s3.push_back("11");
|
274
274
|
ssm.put(s3, "3");
|
275
|
-
|
275
|
+
|
276
276
|
//@ssm[Set[11, 12]] = 4
|
277
277
|
std::vector<std::string> s4;
|
278
278
|
s4.push_back("11");
|
279
279
|
s4.push_back("12");
|
280
280
|
ssm.put(s4, "4");
|
281
|
-
|
281
|
+
|
282
282
|
//@ssm[Set[9, 10, 11, 12, 13]] = 5
|
283
283
|
std::vector<std::string> s5;
|
284
284
|
s5.push_back("9");
|
@@ -287,13 +287,13 @@ void testOrderPreserved() {
|
|
287
287
|
s5.push_back("12");
|
288
288
|
s5.push_back("13");
|
289
289
|
ssm.put(s5, "5");
|
290
|
-
|
290
|
+
|
291
291
|
//@ssm[Set[10, 13]] = 6
|
292
292
|
std::vector<std::string> s6;
|
293
293
|
s6.push_back("10");
|
294
294
|
s6.push_back("13");
|
295
295
|
ssm.put(s6, "6");
|
296
|
-
|
296
|
+
|
297
297
|
//assert_equal([[1, Set[10, 11, 12]], [2, Set[10, 11]], [3, Set[11]], [4, Set[11, 12]], [5, Set[9, 10, 11, 12, 13]], [6, Set[10, 13]]], @ssm.get(Set[9, 10, 11, 12, 13]))
|
298
298
|
std::vector<std::string> k1;
|
299
299
|
k1.push_back("9");
|
@@ -302,7 +302,7 @@ void testOrderPreserved() {
|
|
302
302
|
k1.push_back("12");
|
303
303
|
k1.push_back("13");
|
304
304
|
assertEqual("[[1, Set[10, 11, 12]], [2, Set[10, 11]], [3, Set[11]], [4, Set[11, 12]], [5, Set[9, 10, 11, 12, 13]], [6, Set[10, 13]]]", toString(ssm.get_kv(k1)));
|
305
|
-
|
305
|
+
|
306
306
|
std::cout << std::endl;
|
307
307
|
}
|
308
308
|
void testMultipleEqualValues() {
|
@@ -312,25 +312,25 @@ void testMultipleEqualValues() {
|
|
312
312
|
s1.push_back("11");
|
313
313
|
s1.push_back("12");
|
314
314
|
ssm.put(s1, "1");
|
315
|
-
|
315
|
+
|
316
316
|
//@ssm[Set[12, 13]] = 2
|
317
317
|
std::vector<std::string> s2;
|
318
318
|
s2.push_back("12");
|
319
319
|
s2.push_back("13");
|
320
320
|
ssm.put(s2, "2");
|
321
|
-
|
321
|
+
|
322
322
|
//@ssm[Set[13, 14]] = 1
|
323
323
|
std::vector<std::string> s3;
|
324
324
|
s3.push_back("13");
|
325
325
|
s3.push_back("14");
|
326
326
|
ssm.put(s3, "1");
|
327
|
-
|
327
|
+
|
328
328
|
//@ssm[Set[14, 15]] = 1
|
329
329
|
std::vector<std::string> s4;
|
330
330
|
s4.push_back("14");
|
331
331
|
s4.push_back("15");
|
332
332
|
ssm.put(s4, "1");
|
333
|
-
|
333
|
+
|
334
334
|
//assert_equal([[1, Set[11, 12]], [2, Set[12, 13]], [1, Set[13, 14]], [1, Set[14, 15]]], @ssm.get(Set[11, 12, 13, 14, 15]))
|
335
335
|
std::vector<std::string> k1;
|
336
336
|
k1.push_back("11");
|
@@ -339,7 +339,7 @@ void testMultipleEqualValues() {
|
|
339
339
|
k1.push_back("14");
|
340
340
|
k1.push_back("15");
|
341
341
|
assertEqual("[[1, Set[11, 12]], [2, Set[12, 13]], [1, Set[13, 14]], [1, Set[14, 15]]]", toString(ssm.get_kv(k1)));
|
342
|
-
|
342
|
+
|
343
343
|
std::cout << std::endl;
|
344
344
|
}
|
345
345
|
|
@@ -348,66 +348,66 @@ int main()
|
|
348
348
|
std::vector<std::string> s1;
|
349
349
|
s1.push_back("1");
|
350
350
|
s1.push_back("2");
|
351
|
-
|
351
|
+
|
352
352
|
std::vector<std::string> s2;
|
353
353
|
s2.push_back("2");
|
354
354
|
s2.push_back("3");
|
355
|
-
|
355
|
+
|
356
356
|
std::vector<std::string> s3;
|
357
357
|
s3.push_back("3");
|
358
358
|
s3.push_back("4");
|
359
|
-
|
359
|
+
|
360
360
|
ssm.put(s1, "value1");
|
361
361
|
ssm.put(s2, "value2");
|
362
362
|
ssm.put(s3, "value3");
|
363
|
-
|
363
|
+
|
364
364
|
std::vector<std::string> s4;
|
365
365
|
s4.push_back("1");
|
366
366
|
s4.push_back("2");
|
367
367
|
s4.push_back("3");
|
368
|
-
|
368
|
+
|
369
369
|
std::vector<std::pair<string, std::vector<std::string> > > fetched(ssm.get_kv(s4));
|
370
|
-
|
370
|
+
|
371
371
|
std::cout << "PRINTING RESULTS:" << std::endl;
|
372
372
|
for (size_t i = 0, S = fetched.size(); i < S; ++i) {
|
373
373
|
std::cout << fetched[i].first << std::endl;
|
374
374
|
}
|
375
|
-
|
375
|
+
|
376
376
|
Subset_Map<string, string> ssm2;
|
377
377
|
ssm2.put(s1, "foo");
|
378
378
|
ssm2.put(s2, "bar");
|
379
379
|
ssm2.put(s4, "hux");
|
380
|
-
|
380
|
+
|
381
381
|
std::vector<std::pair<string, std::vector<std::string> > > fetched2(ssm2.get_kv(s4));
|
382
|
-
|
382
|
+
|
383
383
|
std::cout << std::endl << "PRINTING RESULTS:" << std::endl;
|
384
384
|
for (size_t i = 0, S = fetched2.size(); i < S; ++i) {
|
385
385
|
std::cout << fetched2[i].first << std::endl;
|
386
386
|
}
|
387
|
-
|
387
|
+
|
388
388
|
std::cout << "TRYING ON A SELECTOR-LIKE OBJECT" << std::endl;
|
389
|
-
|
389
|
+
|
390
390
|
Subset_Map<string, string> sel_ssm;
|
391
391
|
std::vector<std::string> target;
|
392
392
|
target.push_back("desk");
|
393
393
|
target.push_back(".wood");
|
394
|
-
|
394
|
+
|
395
395
|
std::vector<std::string> actual;
|
396
396
|
actual.push_back("desk");
|
397
397
|
actual.push_back(".wood");
|
398
398
|
actual.push_back(".mine");
|
399
|
-
|
399
|
+
|
400
400
|
sel_ssm.put(target, "has-aquarium");
|
401
401
|
std::vector<std::pair<string, std::vector<std::string> > > fetched3(sel_ssm.get_kv(actual));
|
402
402
|
std::cout << "RESULTS:" << std::endl;
|
403
403
|
for (size_t i = 0, S = fetched3.size(); i < S; ++i) {
|
404
404
|
std::cout << fetched3[i].first << std::endl;
|
405
405
|
}
|
406
|
-
|
406
|
+
|
407
407
|
std::cout << std::endl;
|
408
|
-
|
408
|
+
|
409
409
|
// BEGIN PORTED RUBY TESTS FROM /test/sass/util/subset_map_test.rb
|
410
|
-
|
410
|
+
|
411
411
|
setup();
|
412
412
|
testEqualKeys();
|
413
413
|
testSubsetKeys();
|
@@ -419,13 +419,13 @@ int main()
|
|
419
419
|
testMultipleSubsets();
|
420
420
|
testBracketBracket();
|
421
421
|
testKeyOrder();
|
422
|
-
|
422
|
+
|
423
423
|
setup();
|
424
424
|
testOrderPreserved();
|
425
|
-
|
425
|
+
|
426
426
|
setup();
|
427
427
|
testMultipleEqualValues();
|
428
|
-
|
428
|
+
|
429
429
|
return 0;
|
430
430
|
}
|
431
431
|
|