Commit Graph

267 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