Charles-P. Clermont and Guilherme Carreiro
b8958f626d
Stricter 1:1 refactor of strict_parse for Variable
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
d77662cd0e
Remove unnecessary skips
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
65a1c167b3
Add rigid_parse to case/when
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
e2a15334f0
Fail with trailing elements in the cycle tag
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
327790cdce
Fix an int the cycle tag, add extra unit tests, and updated parser switcher:
...
- Fixed NoMethod error with .peek (using look instead)
- Add friendlier error message when {% cycle %}
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
75c95d0791
Fix cycle tag
...
- `respond_to?` was returning `false` in the parser switcher
because `rigid_parse` was private
It was working before because `parse_context` was doing
the double-parsing thing, but when we removed that, this
test fairly started breaking
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
e413104e78
Remove ExpressionParser in favor of ParseContext#safe_parse
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
d56e3c50f9
Use ExpressionParser in the ParseContext when parsing in :rigid mode
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
1bff382ebc
Add ExpressionParser and ExpressionConsumer
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
6a9e46dd19
Add rigid_parse method to include
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
e58ac0e75b
Add rigid_parse to render
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
c78bf20010
Add a rigid_parse method to cycle
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
edf06c2882
Introduce :rigid parsing mode
2025-10-27 16:33:31 +01:00
James Meng
7f2f8a226b
Add tests for new public methods
2025-06-09 12:24:59 -07:00
James Meng
7b2b25fda1
Fix Doc tag blank? method to check body content
...
Previously the blank? method always returned true. Now it properly checks
if the body is empty, making the tag behavior consistent with other tags.
Also updated test to use whitespace control for cleaner assertions.
2025-06-09 11:36:18 -07:00
James Meng
8548b96a97
Remove body attr_reader and initiliaze @body instance variable in parse method
2025-06-06 13:08:06 -07:00
James Meng
79a771d724
Add test for doc tag capturing token before enddoc
2025-06-04 19:30:47 -07:00
James Meng
65b1dedac5
Expose tag body in the Doc tag
2025-06-04 12:04:41 -07:00
Ian Ker-Seymer and GitHub
f375d7b3aa
Add unit test for custom Liquid tag registration ( #1960 )
...
Adds EnvironmentTest to verify custom tag registration and rendering.
2025-05-22 11:38:10 -04:00
Marco Concetto Rudilosso
c34dd812c5
Fully revert calling to_s on filter array
2025-04-14 17:36:45 +02:00
Marco Concetto Rudilosso
f676e699a4
rollback changes to tests
2025-04-14 11:24:01 +02:00
Marco Concetto Rudilosso
b459eb656f
remove test
2025-04-14 11:17:46 +02:00
Marco Concetto Rudilosso
c6dcf3e714
add test
2025-04-14 11:17:46 +02:00
Marco Concetto Rudilosso
4dae678c63
Revert "Stringify properties before filtering ( #1929 )"
...
This reverts commit f5d6a36574 .
2025-04-14 11:17:46 +02:00
Ian Ker-Seymer and GitHub
dbe709c3bf
Use to_liquid_value in uniq filter ( #1948 )
...
* Use to_liquid_value in uniq filter
* Bump version to 5.8.4
2025-04-09 15:00:01 -04:00
2b75bfaff4
Fix regression when using empty/nil properties with array filters ( #1944 )
...
* Make all array filters that use `filter_array` util process empty string and nil correctly
* up version
* fix ordering of checks
* also do it for map
* Do not raise property error
* Gracefully empty property in map filter
---------
Co-authored-by: Marco Concetto Rudilosso <[email protected] >
2025-04-04 11:27:29 -04:00
aa1640035f
Always stringify properties in all array filters ( #1936 )
...
* Always stringify sum property.
* Add test
* always stringify properties in all array filters
* fix syntax error
* up version
---------
Co-authored-by: Dominic Petrick <[email protected] >
2025-03-19 13:50:01 -04:00
Ian Ker-Seymer and GitHub
f5d6a36574
Stringify properties before filtering ( #1929 )
2025-03-17 17:43:57 -04: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