Albert Chu
591d3a2c70
[WIP] Support for nested boolean expressions in parentheses
...
- Added unit tests for range syntax
- Added logical expression unit tests
- parser respects parentheses during expression traversal
2025-03-17 18:26:52 -06:00
Albert Chu
f1b178d25e
Boolean precedence unit tests
2025-03-17 14:08:44 -06:00
Albert Chu
1ae2ff103e
Added more non-parity unit tests
2025-03-13 16:41:17 -06:00
Albert Chu
6148604320
Added another failing unit test for behavior in main
2025-03-13 13:26:03 -06:00
Albert Chu
e6e8221c78
Fixed lax parsing test case
2025-03-13 10:53:24 -06:00
Albert Chu
484f016e1b
Added failing unit test that passes in main
2025-03-12 19:23:18 -06:00
Albert Chu
4b57b2bbd9
Reintroduced broken conditional operators behaviour present in liquid main
2025-03-12 14:08:45 -06:00
Albert Chu
430794dd5a
Added test for operator reading bug
2025-03-11 17:00:57 -06:00
Guilherme Carreiro and Albert Chu
51a05c2781
Blank parity
2025-03-10 21:20:44 -06:00
Guilherme Carreiro and Albert Chu
263a73bd81
Remove 'assert_parity_todo!'
2025-03-10 21:20:44 -06:00
Guilherme Carreiro and Albert Chu
9e6b628a68
* Introduce support for literal comparisons (e.g., {{ 'hello' == 'hello' }})
...
* Evaluate expressions as truthy/falsy to unlock scenarios, such as `<div class="{{ disabled and "modal--disabled" }}">`
* Add additional scenarios to the expression test suite
* Simplify `LogicalExpression`
2025-03-10 21:20:44 -06:00
Albert Chu
b31f24bdf0
More boolean unit tests and enabled more existing parity cases
2025-03-10 21:20:44 -06:00
Albert Chu
b57f4fcbcb
Support usecase where a nil variable value is used in a logical expression
2025-03-10 21:20:43 -06:00
Guilherme Carreiro and Albert Chu
26ccec12ab
* Move expression handling from variable.rb to expression.rb
...
* Update test suite to validate parity
* Remove parentheses handling
* Split boolean into comparison and logical expressions
2025-03-10 21:20:43 -06:00
Guilherme Carreiro and Albert Chu
9b967690aa
Introduce support to boolean operators in the lexer
2025-03-10 21:20:43 -06:00
Albert Chu
03feea967b
Added a lot more boolean unit tests
2025-03-10 21:20:43 -06:00
Albert Chu
f32c0fb4fb
TDD: Improved unit tests in boolean_unit_test.rb
...
Added tests for existing usage cases to avoid breaking important logic when introducing changes in subsequent commits.
2025-03-10 21:20:42 -06:00
Albert Chu
b036feb20a
Removed infix operators from this PR
2025-03-10 21:20:42 -06:00
Albert Chu
5782a9e1d7
TDD: Unit tests for new liquid syntax
2025-03-10 21:20:42 -06:00
Guilherme Carreiro and Guilherme Carreiro
6453a0ea48
Implement nodelist in the Doc tag so it may be visited
2025-02-26 13:14:39 +01:00
Guilherme Carreiro and Guilherme Carreiro
f643af4bac
Update the implementation to make {% doc %} as strict as {% raw %}
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
ae8a0a86ac
Remove misleading unit test (thank you, @EvilGenius13)
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
b439d0da53
Update {% doc %} to no longer support nested tags (as {% comment %} does)
2025-02-20 12:37:09 +01:00
Guilherme Carreiro and Guilherme Carreiro
16592cfb8f
Add support to LiquidDoc with the new {% doc %} tag
2025-02-20 12:37:09 +01:00
Chris AtLee
550135c0b9
Raise SyntaxError on invalid UTF8 strings in lexer/tokenizer
2025-02-11 14:23:15 -05:00
Guilherme Carreiro
f9454d8cf3
Fix array filters to not support nested properties
2025-01-31 13:53:17 +01:00
Guilherme Carreiro and Guilherme Carreiro
bf1419b8ac
Apply the same fix for find_index and has
2025-01-24 08:39:01 +01:00
Guilherme Carreiro and Guilherme Carreiro
5718c4cee2
Fix the find filter to return nil when filtering empty arrays
2025-01-24 08:39:01 +01:00
Ian Ker-Seymer and GitHub
6372289ba3
Ensure we use InputIterator#each when in join filter ( #1898 )
2025-01-16 11:36:36 -05:00
Ian Ker-Seymer and GitHub
0ec52a40b5
Use Liquid::Utils.to_s for join filter ( #1897 )
2025-01-16 11:21:58 -05:00
Ian Ker-Seymer and GitHub
74af735f0e
Allow for custom < Hash classes to override #to_s ( #1896 )
2025-01-16 11:16:13 -05:00
4b65a28722
Implement logic for stringify Hashes to keep compat with 3.4 ( #1892 )
...
* Exploring
* Bump to v5.6.5
---------
Co-authored-by: Dominic Petrick <[email protected] >
2025-01-15 16:36:53 -05:00
6909570f8e
Add find, find_index, has, and reject filters to arrays ( #1869 )
...
* Add reject filter #1573
* Add deep search for filter taking in properties #1749
* Update branch with main
* Add `find`, `find_index`, `has`, and `reject` filters to arrays
* Refactor: avoid usage of public_send
---------
Co-authored-by: Anders Søgaard <[email protected] >
Co-authored-by: Anders Søgaard <[email protected] >
2025-01-14 10:33:31 +01:00
Michael Go
58777bcd93
float has to start with a digit
2025-01-13 17:13:27 -04:00
Michael Go
a07ae90523
use Ruby Hash as default expression cache
2025-01-10 15:07:57 -04:00
Michael Go
0b8e30b819
update unit test to be compatible with new source_location format
2025-01-10 14:37:54 -04:00
Michael Go
97cada61f9
remove Expression2 strscan workaround
2025-01-10 14:23:57 -04:00
Michael Go
d48708ae46
skip expression caching with Expression1
2025-01-07 14:32:46 -04:00
Michael Go
42d822bda9
users can provide optional expression cache
2025-01-07 14:32:46 -04:00
Michael Go
04bd9dbe90
refactor Lexer to only take StringScanner
2025-01-07 14:32:46 -04:00
Michael Go
7c592c1c00
store StringScanner in ParseContext and reuse it through parsing
2025-01-07 14:32:45 -04:00
Michael Go
002e4caea7
refactor Lexer to be static class function
2025-01-07 14:32:07 -04:00
Michael Go
7c8a269b4d
fix cycle tag not resetting
2025-01-07 14:32:07 -04:00
Michael Go
0b1dc295ff
fix quirky negative sign expression markup parsing
2025-01-07 14:32:07 -04:00
Michael Go
8ecb703d4d
use StringScanner to improve Expression Parsing and Tokenizer
2025-01-07 14:32:06 -04:00
Bahar Pourazar
a0a4307e7d
Fix bug in tokenizer with nil value
2024-12-17 15:34:13 +00:00
Ian Ker-Seymer and GitHub
fdd8c714b2
Stop testing against liquid-c ( #1868 )
...
* Stop testing against `liquid-c`
* Bump to `v5.6.0.rc2`
2024-12-11 12:23:50 -05:00
Ian Ker-Seymer and GitHub
63583ffe5b
Write one value at a time for array variables ( #1863 )
...
* Write one value at a time for array variables
* Handle recursive array
2024-12-11 10:16:58 -05:00
Michael Go
c77ff68573
clean up all warnings by using new Environment
2024-11-04 16:15:05 -04:00
Ian Ker-Seymer and GitHub
b0cba0bfd2
Remove Liquid.cache_classes option ( #1847 )
2024-11-04 14:41:56 -05:00