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
Michael Go
0b8e30b819
update unit test to be compatible with new source_location format
2025-01-10 14:37:54 -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
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
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
Michael Go
29986d3704
remove TagRegistry
2024-11-04 15:22:56 -04:00
Michael Go
ffce6de8bb
avoid using StringScanner eos
2024-10-30 13:45:10 -03:00
Michael Go
f00670cb01
refactor lexer unit test
2024-10-30 13:44:36 -03:00
Michael Go
f6a3e25e2e
fix parsing quirky incomplete expressions
2024-10-30 13:44:35 -03:00
Michael Go
1375a9e4dc
fix lexer parsing ID 'contains' as comparison
2024-10-30 13:39:55 -03:00
Michael Go
8a9f33a060
raise syntax error from lexer parser with utf8 character
2024-10-29 22:04:37 -03:00
Michael Go and GitHub
1943441361
Merge pull request #1835 from Shopify/fix-multibyte-variable-parsing
...
fix parsing Variable blockbody with multibyte character
2024-10-28 19:31:21 -03:00
Michael Go
d94293a464
fix lexer parsing comparison without whitespaces
2024-10-28 19:30:12 -03:00
Michael Go
6c13805a60
fix parsing Variable blockbody with multibyte character
2024-10-28 17:33:55 -03:00
Ian Ker-Seymer and GitHub
b3553787c8
Speed up the lexer for Ruby 3.4+ ( #1832 )
...
* Speed up lexing
* Bump msrv to 3.0 (from 2.7)
* Normalize test for ruby-head compat
* Fix bug when parsing negative numbers
2024-10-23 14:15:33 -04:00
Ian Ker-Seymer and GitHub
fb6634f454
Add concept of Liquid::Environment ( #1815 )
...
* Add concept of `Liquid::World`
* Rename `World` to `Environment`
2024-08-07 15:00:44 -04:00
Ian Ker-Seymer
1b2b62964e
Allow for binary comparison of incompatible strings
2024-01-30 19:03:05 -05:00
Michael Go
a3c837687e
don't reset Liquid tag's whitespace control from comment tag
2024-01-05 10:21:33 -04:00
Michael Go
fc9c338682
refactor: rename comment tag unit test
2023-12-14 17:08:26 -04:00
Michael Go
3c5ad7db61
don't allow invalid syntax inside comment tag
2023-12-14 17:01:03 -04:00
Michael Go
c618ac1c9f
fix parsing comment tag with extra string
2023-12-12 16:23:37 -04:00
Ian Ker-Seymer and GitHub
0f0d5d889f
Merge pull request #1750 from IevaGraz/fix/custom_tag_rendering
...
Fix for custom tag rendering
2023-12-10 11:28:50 -05:00
Michael Go
24d461a9e3
implement whitespace control to comment tag
2023-12-01 16:04:03 -04:00
Michael Go
bf0f79f36c
fix parsing comment tag delimiter
2023-11-30 13:24:54 -04:00
Michael Go
6a5ebb0e85
fix parsing nested comment tag with extra strings
2023-11-11 12:19:44 -04:00
Michael Go
6dafc19b6d
fix parsing comment tag delimiter with extra strings
2023-11-10 15:42:54 -04:00
Michael Go
41f65173b0
fix parsing comment block body inside a liquid tag
2023-11-09 16:27:23 -04:00
Michael Go
a681e73aec
refactor comment tag unit test to use test helper
2023-11-08 16:45:11 -04:00
Michael Go
2abf52d546
add a quirky comment tag unit test
2023-11-08 11:23:00 -04:00
Michael Go and Alex Coco
dbf0aa8cd5
don't parse nodes inside a comment tag
...
Co-authored-by: Alex Coco <[email protected] >
2023-11-07 18:38:13 -04:00