|
22 | 22 | end |
23 | 23 |
|
24 | 24 | please do check Set[2,3,4].map |
25 | | - tokens.should == [ |
26 | | - [:open_object, "#<"], |
27 | | - [:object_class, "Enumerator"], |
28 | | - [:object_description_prefix, ":"], |
| 25 | + set = concise_set? ? [ |
| 26 | + [:class, "Set"], |
| 27 | + [:open_array, "["], |
| 28 | + [:number, "2"], |
| 29 | + [:comma, ","], |
29 | 30 | [:whitespace, " "], |
| 31 | + [:number, "3"], |
| 32 | + [:comma, ","], |
| 33 | + [:whitespace, " "], |
| 34 | + [:number, "4"], |
| 35 | + [:close_array, "]"], |
| 36 | + ] : [ |
30 | 37 | [:open_object, "#<"], |
31 | 38 | [:object_class, "Set"], |
32 | 39 | [:object_description_prefix, ":"], |
33 | 40 | [:whitespace, " "], |
34 | 41 | [:open_set, "{"], |
35 | | - [:number, "2"], |
| 42 | + [:number, /\d+/], |
36 | 43 | [:comma, ","], |
37 | 44 | [:whitespace, " "], |
38 | | - [:number, "3"], |
| 45 | + [:number, /\d+/], |
39 | 46 | [:comma, ","], |
40 | 47 | [:whitespace, " "], |
41 | | - [:number, "4"], |
| 48 | + [:number, /\d+/], |
42 | 49 | [:close_set, "}"], |
43 | 50 | [:close_object, ">"], |
| 51 | + ] |
| 52 | + |
| 53 | + tokens.should be_like [ |
| 54 | + [:open_object, "#<"], |
| 55 | + [:object_class, "Enumerator"], |
| 56 | + [:object_description_prefix, ":"], |
| 57 | + [:whitespace, " "], |
| 58 | + *set, |
44 | 59 | [:object_description, RubyEngine.truffle? ? ":collect" : ":map"], |
45 | 60 | [:close_object, ">"], |
46 | 61 | ] |
|
89 | 104 | end |
90 | 105 |
|
91 | 106 | please do check [2,Set[{1=>2}],4].map |
92 | | - tokens.should == [ |
93 | | - [:open_object, "#<"], |
94 | | - [:object_class, "Enumerator"], |
95 | | - [:object_description_prefix, ":"], |
96 | | - [:whitespace, " "], |
97 | | - [:open_array, "["], |
98 | | - [:number, "2"], |
99 | | - [:comma, ","], |
100 | | - [:whitespace, " "], |
101 | | - [:open_object, "#<"], |
102 | | - [:object_class, "Set"], |
103 | | - [:object_description_prefix, ":"], |
104 | | - [:whitespace, " "], |
105 | | - [:open_set, "{"], |
106 | | - [:open_hash, "{"], |
107 | | - [:number, "1"], |
108 | | - ([:whitespace, " "] if spaced_hashes?), |
109 | | - [:refers, "=>"], |
110 | | - ([:whitespace, " "] if spaced_hashes?), |
111 | | - [:number, "2"], |
112 | | - [:close_hash, "}"], |
113 | | - [:close_set, "}"], |
114 | | - [:close_object, ">"], |
115 | | - [:comma, ","], |
116 | | - [:whitespace, " "], |
117 | | - [:number, "4"], |
118 | | - [:close_array, "]"], |
119 | | - [:object_description, ":map"], |
120 | | - [:close_object, ">"], |
121 | | - ].compact |
| 107 | + if concise_set? |
| 108 | + tokens.should == [ |
| 109 | + [:open_object, "#<"], |
| 110 | + [:object_class, "Enumerator"], |
| 111 | + [:object_description_prefix, ":"], |
| 112 | + [:whitespace, " "], |
| 113 | + [:open_array, "["], |
| 114 | + [:number, "2"], |
| 115 | + [:comma, ","], |
| 116 | + [:whitespace, " "], |
| 117 | + [:class, "Set"], |
| 118 | + [:open_array, "["], |
| 119 | + [:open_hash, "{"], |
| 120 | + [:number, "1"], |
| 121 | + [:whitespace, " "], |
| 122 | + [:refers, "=>"], |
| 123 | + [:whitespace, " "], |
| 124 | + [:number, "2"], |
| 125 | + [:close_hash, "}"], |
| 126 | + [:close_array, "]"], |
| 127 | + [:comma, ","], |
| 128 | + [:whitespace, " "], |
| 129 | + [:number, "4"], |
| 130 | + [:close_array, "]"], |
| 131 | + [:object_description, ":map"], |
| 132 | + [:close_object, ">"], |
| 133 | + ] |
| 134 | + else |
| 135 | + tokens.should == [ |
| 136 | + [:open_object, "#<"], |
| 137 | + [:object_class, "Enumerator"], |
| 138 | + [:object_description_prefix, ":"], |
| 139 | + [:whitespace, " "], |
| 140 | + [:open_array, "["], |
| 141 | + [:number, "2"], |
| 142 | + [:comma, ","], |
| 143 | + [:whitespace, " "], |
| 144 | + [:open_object, "#<"], |
| 145 | + [:object_class, "Set"], |
| 146 | + [:object_description_prefix, ":"], |
| 147 | + [:whitespace, " "], |
| 148 | + [:open_set, "{"], |
| 149 | + [:open_hash, "{"], |
| 150 | + [:number, "1"], |
| 151 | + ([:whitespace, " "] if spaced_hashes?), |
| 152 | + [:refers, "=>"], |
| 153 | + ([:whitespace, " "] if spaced_hashes?), |
| 154 | + [:number, "2"], |
| 155 | + [:close_hash, "}"], |
| 156 | + [:close_set, "}"], |
| 157 | + [:close_object, ">"], |
| 158 | + [:comma, ","], |
| 159 | + [:whitespace, " "], |
| 160 | + [:number, "4"], |
| 161 | + [:close_array, "]"], |
| 162 | + [:object_description, ":map"], |
| 163 | + [:close_object, ">"], |
| 164 | + ].compact |
| 165 | + end |
122 | 166 | end |
123 | 167 |
|
124 | 168 | please do check Wirb::Tokenizer.run('[2,3,4]') |
|
140 | 184 | end |
141 | 185 |
|
142 | 186 | please do check [{1=>2},Wirb::Tokenizer.run('2'),Set[2,3],[3,4],[5,6].each].map |
143 | | - tokens.should == [ |
144 | | - [:open_object, "#<"], |
145 | | - [:object_class, "Enumerator"], |
146 | | - [:object_description_prefix, ":"], |
147 | | - [:whitespace, " "], |
148 | | - [:open_array, "["], |
149 | | - [:open_hash, "{"], |
150 | | - [:number, "1"], |
151 | | - ([:whitespace, " "] if spaced_hashes?), |
152 | | - [:refers, "=>"], |
153 | | - ([:whitespace, " "] if spaced_hashes?), |
154 | | - [:number, "2"], |
155 | | - [:close_hash, "}"], |
156 | | - [:comma, ","], |
157 | | - [:whitespace, " "], |
158 | | - [:open_object, "#<"], |
159 | | - [:object_class, "Enumerator"], |
160 | | - [:object_description_prefix, ":"], |
161 | | - [:whitespace, " "], |
162 | | - [:class, "Wirb"], |
163 | | - [:class_separator, "::"], |
164 | | - [:class, "Tokenizer"], |
165 | | - [:object_description, ":run("], |
166 | | - [:open_string, "\""], |
167 | | - [:string, "2"], |
168 | | - [:close_string, "\""], |
169 | | - [:object_description, ")"], |
170 | | - [:close_object, ">"], |
171 | | - [:comma, ","], |
172 | | - [:whitespace, " "], |
173 | | - [:open_object, "#<"], |
174 | | - [:object_class, "Set"], |
175 | | - [:object_description_prefix, ":"], |
176 | | - [:whitespace, " "], |
177 | | - [:open_set, "{"], |
178 | | - [:number, "2"], |
179 | | - [:comma, ","], |
180 | | - [:whitespace, " "], |
181 | | - [:number, "3"], |
182 | | - [:close_set, "}"], |
183 | | - [:close_object, ">"], |
184 | | - [:comma, ","], |
185 | | - [:whitespace, " "], |
186 | | - [:open_array, "["], |
187 | | - [:number, "3"], |
188 | | - [:comma, ","], |
189 | | - [:whitespace, " "], |
190 | | - [:number, "4"], |
191 | | - [:close_array, "]"], |
192 | | - [:comma, ","], |
193 | | - [:whitespace, " "], |
194 | | - [:open_object, "#<"], |
195 | | - [:object_class, "Enumerator"], |
196 | | - [:object_description_prefix, ":"], |
197 | | - [:whitespace, " "], |
198 | | - [:open_array, "["], |
199 | | - [:number, "5"], |
200 | | - [:comma, ","], |
201 | | - [:whitespace, " "], |
202 | | - [:number, "6"], |
203 | | - [:close_array, "]"], |
204 | | - [:object_description, ":each"], |
205 | | - [:close_object, ">"], |
206 | | - [:close_array, "]"], |
207 | | - [:object_description, ":map"], |
208 | | - [:close_object, ">"], |
209 | | - ].compact |
| 187 | + if concise_set? |
| 188 | + tokens.should == [ |
| 189 | + [:open_object, "#<"], |
| 190 | + [:object_class, "Enumerator"], |
| 191 | + [:object_description_prefix, ":"], |
| 192 | + [:whitespace, " "], |
| 193 | + [:open_array, "["], |
| 194 | + [:open_hash, "{"], |
| 195 | + [:number, "1"], |
| 196 | + [:whitespace, " "], |
| 197 | + [:refers, "=>"], |
| 198 | + [:whitespace, " "], |
| 199 | + [:number, "2"], |
| 200 | + [:close_hash, "}"], |
| 201 | + [:comma, ","], |
| 202 | + [:whitespace, " "], |
| 203 | + [:open_object, "#<"], |
| 204 | + [:object_class, "Enumerator"], |
| 205 | + [:object_description_prefix, ":"], |
| 206 | + [:whitespace, " "], |
| 207 | + [:class, "Wirb"], |
| 208 | + [:class_separator, "::"], |
| 209 | + [:class, "Tokenizer"], |
| 210 | + [:object_description, ":run("], |
| 211 | + [:open_string, "\""], |
| 212 | + [:string, "2"], |
| 213 | + [:close_string, "\""], |
| 214 | + [:object_description, ")"], |
| 215 | + [:close_object, ">"], |
| 216 | + [:comma, ","], |
| 217 | + [:whitespace, " "], |
| 218 | + [:class, "Set"], |
| 219 | + [:open_array, "["], |
| 220 | + [:number, "2"], |
| 221 | + [:comma, ","], |
| 222 | + [:whitespace, " "], |
| 223 | + [:number, "3"], |
| 224 | + [:close_array, "]"], |
| 225 | + [:comma, ","], |
| 226 | + [:whitespace, " "], |
| 227 | + [:open_array, "["], |
| 228 | + [:number, "3"], |
| 229 | + [:comma, ","], |
| 230 | + [:whitespace, " "], |
| 231 | + [:number, "4"], |
| 232 | + [:close_array, "]"], |
| 233 | + [:comma, ","], |
| 234 | + [:whitespace, " "], |
| 235 | + [:open_object, "#<"], |
| 236 | + [:object_class, "Enumerator"], |
| 237 | + [:object_description_prefix, ":"], |
| 238 | + [:whitespace, " "], |
| 239 | + [:open_array, "["], |
| 240 | + [:number, "5"], |
| 241 | + [:comma, ","], |
| 242 | + [:whitespace, " "], |
| 243 | + [:number, "6"], |
| 244 | + [:close_array, "]"], |
| 245 | + [:object_description, ":each"], |
| 246 | + [:close_object, ">"], |
| 247 | + [:close_array, "]"], |
| 248 | + [:object_description, ":map"], |
| 249 | + [:close_object, ">"], |
| 250 | + ] |
| 251 | + else |
| 252 | + tokens.should == [ |
| 253 | + [:open_object, "#<"], |
| 254 | + [:object_class, "Enumerator"], |
| 255 | + [:object_description_prefix, ":"], |
| 256 | + [:whitespace, " "], |
| 257 | + [:open_array, "["], |
| 258 | + [:open_hash, "{"], |
| 259 | + [:number, "1"], |
| 260 | + ([:whitespace, " "] if spaced_hashes?), |
| 261 | + [:refers, "=>"], |
| 262 | + ([:whitespace, " "] if spaced_hashes?), |
| 263 | + [:number, "2"], |
| 264 | + [:close_hash, "}"], |
| 265 | + [:comma, ","], |
| 266 | + [:whitespace, " "], |
| 267 | + [:open_object, "#<"], |
| 268 | + [:object_class, "Enumerator"], |
| 269 | + [:object_description_prefix, ":"], |
| 270 | + [:whitespace, " "], |
| 271 | + [:class, "Wirb"], |
| 272 | + [:class_separator, "::"], |
| 273 | + [:class, "Tokenizer"], |
| 274 | + [:object_description, ":run("], |
| 275 | + [:open_string, "\""], |
| 276 | + [:string, "2"], |
| 277 | + [:close_string, "\""], |
| 278 | + [:object_description, ")"], |
| 279 | + [:close_object, ">"], |
| 280 | + [:comma, ","], |
| 281 | + [:whitespace, " "], |
| 282 | + [:open_object, "#<"], |
| 283 | + [:object_class, "Set"], |
| 284 | + [:object_description_prefix, ":"], |
| 285 | + [:whitespace, " "], |
| 286 | + [:open_set, "{"], |
| 287 | + [:number, "2"], |
| 288 | + [:comma, ","], |
| 289 | + [:whitespace, " "], |
| 290 | + [:number, "3"], |
| 291 | + [:close_set, "}"], |
| 292 | + [:close_object, ">"], |
| 293 | + [:comma, ","], |
| 294 | + [:whitespace, " "], |
| 295 | + [:open_array, "["], |
| 296 | + [:number, "3"], |
| 297 | + [:comma, ","], |
| 298 | + [:whitespace, " "], |
| 299 | + [:number, "4"], |
| 300 | + [:close_array, "]"], |
| 301 | + [:comma, ","], |
| 302 | + [:whitespace, " "], |
| 303 | + [:open_object, "#<"], |
| 304 | + [:object_class, "Enumerator"], |
| 305 | + [:object_description_prefix, ":"], |
| 306 | + [:whitespace, " "], |
| 307 | + [:open_array, "["], |
| 308 | + [:number, "5"], |
| 309 | + [:comma, ","], |
| 310 | + [:whitespace, " "], |
| 311 | + [:number, "6"], |
| 312 | + [:close_array, "]"], |
| 313 | + [:object_description, ":each"], |
| 314 | + [:close_object, ">"], |
| 315 | + [:close_array, "]"], |
| 316 | + [:object_description, ":map"], |
| 317 | + [:close_object, ">"], |
| 318 | + ].compact |
| 319 | + end |
210 | 320 | end |
211 | 321 | end |
0 commit comments