Repository navigation
Commit 5aad5c8
authored
Ruby: Generate
Follow up on the recently added `Herb::Location.zero`,
`Herb::Range.zero` and `Herb::Token.from` constructors, applying the
same idea one level up to AST nodes.
Constructing a node by hand means repeating the node type as a string,
passing an empty errors array, and then positionally filling every
field, including the ones you don't care about:
```ruby
Herb::AST::ERBContentNode.new(
"ERBContentNode",
element_node.location,
[],
Herb::Token.from("TOKEN_ERB_START", "<%="),
Herb::Token.from("TOKEN_ERB_CONTENT", " #{code}"),
Herb::Token.from("TOKEN_ERB_END", "%>"),
nil,
false,
true,
nil
)
```
The same `ERBContentNode` from above with this pull request:
```ruby
Herb::AST::ERBContentNode.build(
location: element_node.location,
tag_opening: Herb::Token.from("TOKEN_ERB_START", "<%="),
content: Herb::Token.from("TOKEN_ERB_CONTENT", " #{code}"),
tag_closing: Herb::Token.from("TOKEN_ERB_END", "%>"),
valid: true
)
```build factories for AST nodes (#2055)1 parent 71540cf commit 5aad5c8
6 files changed
Lines changed: 199 additions & 68 deletions
File tree
- lib/herb/engine
- sig/herb/ast
- templates
- lib/herb/ast
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
45 | 42 | | |
46 | 43 | | |
47 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
218 | 213 | | |
219 | 214 | | |
220 | 215 | | |
221 | 216 | | |
222 | 217 | | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
237 | 225 | | |
238 | 226 | | |
239 | 227 | | |
240 | 228 | | |
241 | 229 | | |
242 | | - | |
243 | | - | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | | - | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
249 | 235 | | |
250 | 236 | | |
251 | 237 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
195 | | - | |
196 | | - | |
197 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
198 | 200 | | |
199 | | - | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
200 | 206 | | |
201 | 207 | | |
202 | 208 | | |
| |||
233 | 239 | | |
234 | 240 | | |
235 | 241 | | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
242 | | - | |
243 | | - | |
244 | | - | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
245 | 247 | | |
246 | 248 | | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
255 | 253 | | |
256 | 254 | | |
257 | | - | |
258 | | - | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
259 | 262 | | |
260 | 263 | | |
261 | 264 | | |
| |||
0 commit comments