Commit Graph

167 Commits

Author SHA1 Message Date
Tom Alexander
e957caf386
Render the else block in sections if the path does not exist or if the path can't be walked.
This fixes all existing compliance tests.
2020-05-03 15:29:02 -04:00
Tom Alexander
cc6dbefcdb
Implement specials in the renderer. 2020-05-03 14:52:08 -04:00
Tom Alexander
7f65e73229
Merge branch 'bug_tags_separated_by_whitespace' into render 2020-05-03 14:46:12 -04:00
Tom Alexander
bafff8e7a0
Finished transitioning to the new top-level ignored whitespace template element. 2020-05-03 14:44:09 -04:00
Tom Alexander
908ae078b0
Start of making ignored whitespace a top-level template element to handle it in a more generic fashion. 2020-05-03 13:43:49 -04:00
Tom Alexander
b8c59f012b
Expanded the test definition and fixed part of the problem. 2020-05-03 13:21:02 -04:00
Tom Alexander
7670db9259
Identified an issue where tags separated by only whitespace are breaking parsing. 2020-05-03 13:07:27 -04:00
Tom Alexander
f97bb25ca8
Integrated the new span class 2020-05-03 12:48:02 -04:00
Tom Alexander
b8e8f19724
Implemented a new span to trim leading whitespace.
Through my experiements I have concluded that DustJS trims whitespace at the front of a line. To handle this, I implement a new parser that matches a newline followed by any amount of whitespace. This should allow me to trim whitespace at the head of the line because spans start immediately after a tag is closed. So, for example:

```
{foo}
  bar
{/foo}
```

Would be:

```
{foo}\n  bar{/foo}
     ^     ^
     \____/
      span
```

So while there is no magical "start of line" detector like in regular expressions, the first start of a line in a span will always be preceded with a newline character except for the opening of the document. For handling the opening of the document I am already trimming the whitespace in the `template()` parser.
2020-05-03 12:28:55 -04:00
Tom Alexander
31029bf50b
Add a test for whitespace inside the template.
This is similar to the surrounding whitespace test but for whitespace inside of a tag as opposed to before/after the first element of the template.
2020-05-02 19:30:23 -04:00
Tom Alexander
82fb4964ee
Merge branch 'trait_wrapper' into render 2020-05-02 17:23:29 -04:00
Tom Alexander
9a261aa870
Fixed lifetime issue 2020-05-02 16:08:39 -04:00
Tom Alexander
7b87e30ff9
Fixed returns but hitting lifetime issue 2020-05-02 16:04:10 -04:00
Tom Alexander
caa79d5ba2
Moving towards a generic trait wrapper to call between dynamic and static dispatch functions. 2020-05-02 15:55:38 -04:00
Tom Alexander
3cfc294e93
Add an array-context test case for the sections test 2020-04-28 20:47:26 -04:00
Tom Alexander
f0a69d12b9
First attempt at a section render function.
Running into an issue with generics vs dynamic references.
2020-04-28 20:46:29 -04:00
Tom Alexander
e5c4ba8c82
Add a Loopable trait for dust sections. 2020-04-28 19:34:52 -04:00
Tom Alexander
c961cf7ab8
Combine the render traits into a single context_element file. 2020-04-28 19:09:02 -04:00
Tom Alexander
41ad6179d1
Parse self-references and add a test for sections. 2020-04-28 19:02:43 -04:00
Tom Alexander
71181fbd9a
Add a test case for comments 2020-04-12 22:10:16 -04:00
Tom Alexander
8e4f5e3229
Fixing warnings 2020-04-12 21:57:42 -04:00
Tom Alexander
883bda7a78
Added the signature for passing filters into the render function.
Added the signature for passing filters into the render function but I am not yet using the filters.
2020-04-12 21:54:15 -04:00
Tom Alexander
70cb107f86
Removing unused imports 2020-04-12 21:44:38 -04:00
Tom Alexander
d813a66610
Add test for booleans and null 2020-04-12 21:42:08 -04:00
Tom Alexander
7a28e6a9d4
Handle rendering json arrays and objects 2020-04-12 21:40:34 -04:00
Tom Alexander
24d2c1831c
Handle missing references 2020-04-12 21:26:23 -04:00
Tom Alexander
fe32edbc28
Update gitignore for compliance tests 2020-04-12 21:19:28 -04:00
Tom Alexander
0c4e97c556
typo 2020-04-12 21:14:21 -04:00
Tom Alexander
cc52c3ad05
Merge branch 'render_result' into render 2020-04-12 21:09:17 -04:00
Tom Alexander
610adc8b72
Switch the Renderable trait over to the returning a RenderError 2020-04-12 21:09:03 -04:00
Tom Alexander
9c7883358a
Better error handling added to walkable 2020-04-12 20:52:30 -04:00
Tom Alexander
a647ed6d43
fix tests 2020-04-12 18:31:27 -04:00
Tom Alexander
d51392fe8a
Initial move to returning results from render calls. 2020-04-12 18:29:40 -04:00
Tom Alexander
d30749f709
Updated to the latest nom 2020-04-12 17:39:24 -04:00
Tom Alexander
28b5cf1d34
Fix handling of surrounding whitespace 2020-04-12 16:02:26 -04:00
Tom Alexander
4856fb6d11
Support passing args to the dockerized test runner 2020-04-12 15:47:38 -04:00
Tom Alexander
aa24f50dfa
Merge branch 'docker_compliance_tests' into render 2020-04-12 15:25:32 -04:00
Tom Alexander
8435028a55
Dockerized tests are now working and added a flag to toggle showing the test case diff. 2020-04-12 15:24:38 -04:00
Tom Alexander
aa7155d467
Correctly counting test failures 2020-04-12 14:44:53 -04:00
Tom Alexander
db575d145e
Initial attempt at docker compliance tests. 2020-04-12 14:37:54 -04:00
Tom Alexander
542c2c4536
Switching render_template to render_body.
The body element is re-used as a child element in blocks, so it makes more sense to make a function that renders that as opposed to a function that renders a top-level-only container that contains only a body.
2020-04-11 23:03:07 -04:00
Tom Alexander
869c32df21
Moving the custom types for the walk_path test inside the test function 2020-04-11 22:54:48 -04:00
Tom Alexander
273f6204d8
Rendering my first template with actually following paths.
Before I was hard-coding the path to the reference. Now I am following the full path programmatically using the new ContextElement and Walkable traits.
2020-04-11 22:52:20 -04:00
Tom Alexander
e5e1703fab
Implement ContextElement for serde_json::Value 2020-04-11 22:47:31 -04:00
Tom Alexander
0f60baf31c
Merge branch 'walkable' into render 2020-04-11 22:37:27 -04:00
Tom Alexander
dbfa7ea4dc
Cleaning up 2020-04-11 22:36:22 -04:00
Tom Alexander
47bb055b67
I think its working 2020-04-11 22:23:59 -04:00
Tom Alexander
5efa650b67
Switching to a combined ContextElement trait for Walkable and Renderable 2020-04-11 22:19:54 -04:00
Tom Alexander
07e5c9f0af
turns out putting dyn everywhere fixes it 2020-04-11 22:04:44 -04:00
Tom Alexander
c094997032
Getting rid of some lifetimes 2020-04-11 21:59:21 -04:00