Commit Graph

92 Commits

Author SHA1 Message Date
Tom Alexander 900d929869
Move the json integration to its own file to keep the serde stuff separate. 2020-12-29 18:21:12 -05:00
Tom Alexander a622a7e1bc
Add an is_castable() function to stop casting to number for booleans in the @size helper. 2020-06-14 18:27:28 -04:00
Tom Alexander c300d18a75
Implement the outstanding type casts for serde_json. 2020-06-14 17:59:57 -04:00
Tom Alexander 83c86ff9b3
Move ComparisonNumber into the library and add an OwnedLiteral for booleans. 2020-06-14 17:08:01 -04:00
Tom Alexander 8ab315abfe
Adding stubs for type casting to string and boolean. 2020-06-14 16:38:55 -04:00
Tom Alexander 648ae5dfdb
Turns out I was wrong, the @size helper attempts to cast to a number regardless of the input and it uses that. Fixed the test. 2020-06-14 15:20:54 -04:00
Tom Alexander a6c22417e5
Implement Sizable for both OwnedLiterals and serde_json. 2020-06-14 13:06:03 -04:00
Tom Alexander 1a54e35736
Add tests and a Sizable trait for ContextElement. 2020-06-14 12:54:03 -04:00
Tom Alexander cdd10576e8
Wire up serde_json for the math functions. 2020-06-13 22:55:38 -04:00
Tom Alexander d8b8c223f0
Add stubs for the math functions. 2020-06-13 22:12:00 -04:00
Tom Alexander b897656cef
Fix all of the math test except for block template-based methods. 2020-06-13 21:37:11 -04:00
Tom Alexander dcbf8e83f6
Implement number casting. 2020-06-13 19:55:40 -04:00
Tom Alexander 9eb70f436c
Starting a type casting trait 2020-06-13 19:39:31 -04:00
Tom Alexander 241f6c04e4
Rename JsonNumber to ComparisonNumber. 2020-06-13 19:15:51 -04:00
Tom Alexander d6ad7c28f3
Move MathNumber into the library.
While this will be used for the OwnedLiterals since they must always exhibit the original DustJS behavior, I am going to keep exposing separate math functions for ContextElement instead of simply requiring them to implement Into<MathNumber> since people might want to implement math in unusual ways with unusual types.
2020-06-13 19:13:02 -04:00
Tom Alexander d9ce011113
Add implementation based on MathNumber. 2020-06-13 19:02:56 -04:00
Tom Alexander df0ae05648
Start of implementation for serde_json but I'm going to change my approach.
The permutations are pretty intense, so I think I'm going to do the same design I did for comparison where I have a JsonNumber (but I'll call this one MathNumber and rename JsonNumber to ComparisonNumber), convert the types to that, and then do the math.
2020-06-13 18:34:13 -04:00
Tom Alexander db11677b22
Implement addition for OwnedLiterals. 2020-06-13 17:50:22 -04:00
Tom Alexander 8ef3949a65
Fix float json to literal equality comparison by casting them both to float. 2020-06-13 16:32:57 -04:00
Tom Alexander d99aa44d8e
Add support for negative integers. 2020-06-13 16:06:31 -04:00
Tom Alexander 02bcefb75c
Remove outdated TODO. 2020-06-13 15:33:21 -04:00
Tom Alexander 03ff75b2de
Fix number comparison logic. 2020-06-13 15:31:52 -04:00
Tom Alexander 4d28120732
I have broken the comparison function. 2020-06-13 14:55:27 -04:00
Tom Alexander 5b656a44ad
For partial_cmp, convert OwnedLiterals into serde_json values. 2020-06-13 14:19:03 -04:00
Tom Alexander a378d6e6f3
Add comparisons for json floats but not yet between OwnedLiterals and json. 2020-06-13 13:47:43 -04:00
Tom Alexander d06fbea288
Remove unused code and clean up warnings. 2020-06-07 13:27:57 -04:00
Tom Alexander 669a698575
Re-enable the ContextElement implementation for serde_json 2020-06-07 00:17:55 -04:00
Tom Alexander 6bde22b667
Re-enabled compiling templates from bin.rs. 2020-05-31 19:08:10 -04:00
Tom Alexander f1ec0ffb9e
Got rid of most of the Clone traits on the parser types since some of the parser results now contain owned values rather than just references. 2020-05-31 19:01:51 -04:00
Tom Alexander b8b4759d45
Remove iteration_context, parameters_context, and most of bin.rs.
Since I'm changing a pretty core concept of the renderer, I'm going to be rebuilding it piece by piece. In the interest of being able to rapidly change things and check if they are valid through compilation, I need to eliminate most of the old code so I do not have that weighing me down.
2020-05-31 18:27:55 -04:00
Tom Alexander acb8dfb58e
Replaced the old renderer file with a new renderer file. 2020-05-31 18:18:21 -04:00
Tom Alexander 917da5a073
Put IntoContextElement everywhere. It compiles again. 2020-05-30 17:50:27 -04:00
Tom Alexander 966499db76
Switch the get_loop_elements implementation to only return populated arrays when its an array-like object. 2020-05-24 16:27:13 -04:00
Tom Alexander 59ee4f508f
Add a new trait to ContextElement for Truthiness.
Before I was relying on Loopable to both determine truthiness and get a list of elements to loop over. This will no longer work since I need to only set $idx and $len when iterating over actual arrays, as opposed to all truthy values, so I've finally made truthiness explicit.
2020-05-24 16:16:43 -04:00
Tom Alexander 92b9e571be
Array had the same javascript escaping string issue.
Filed a bug at https://github.com/linkedin/dustjs/issues/802 .
2020-05-23 22:37:56 -04:00
Tom Alexander 5424543122
Object also should not turn into a string during javascript escape. 2020-05-23 22:31:33 -04:00
Tom Alexander 7ff1f310f5
Same issue with numbers. 2020-05-23 22:06:25 -04:00
Tom Alexander 71378ed37d
Fix a bug w.r.t. quoting and escaping boolean values with filters. 2020-05-23 19:34:38 -04:00
Tom Alexander bd7866e973
Implement encodeURIComponent filter. 2020-05-23 19:10:02 -04:00
Tom Alexander 46d4f50410
Implement the encodeURI filter. 2020-05-23 19:06:09 -04:00
Tom Alexander 8d2728a767
Implement javascript string escaping. 2020-05-23 18:40:09 -04:00
Tom Alexander e22bffd2ba
Implemented the json stringify and parse filters. 2020-05-23 18:14:23 -04:00
Tom Alexander 6a9fe9e1be
Beginning of applying filters for json types. Currently only supports html escaping. 2020-05-23 17:23:48 -04:00
Tom Alexander 4645530473
Use the render function when doing string coercion for json values. 2020-05-17 15:52:38 -04:00
Tom Alexander 756fdb7d00
Tests are once again passing. 2020-05-17 00:40:55 -04:00
Tom Alexander 830bb06a92
Unifying number comparison. 2020-05-17 00:27:21 -04:00
Tom Alexander 731f235d9e
fix greater than. 2020-05-16 23:26:33 -04:00
Tom Alexander 03a8328148
Fix the equality test. 2020-05-16 23:19:02 -04:00
Tom Alexander 596611c03a
Mostly implemented the new comparison logic for json with new literals. 2020-05-16 23:07:05 -04:00
Tom Alexander c905e705ff
Transition to new literals compiling.
Tests still need work, as does the implementation for json.
2020-05-16 22:31:40 -04:00