Julia Boutin and Guilherme Carreiro
c7ad1c90ca
Change inline snippet identifier from string to variable
...
Currently, snippet files identified by strings. This
PR makes changes to render to allow for new inline
snippets to use variables as identifiers instead
2025-10-30 12:00:44 +01:00
Julia Boutin and Guilherme Carreiro
12bbbc4537
Create SnippetDrop and set in scope
2025-10-30 12:00:44 +01:00
1eca707c4a
Update inline snippets syntax
...
Previously, inline snippets syntax looked a bit
different, they:
- used strings as tag identifiers
- defined tag arguments {% snippet "input" |type| %}
This PR updates snippets to better reflect
the currently proposed syntax
Co-authored-by: Orlando Qiu <[email protected] >
2025-10-30 12:00:44 +01:00
Josh Faigan and Guilherme Carreiro
ed9c4e31c4
Introduce new inline snippets tag
...
Inline snippets will reduce code duplication and
improve the developer experience, eliminating the
need for one-off snippet files
2025-10-30 12:00:44 +01:00
Guilherme Carreiro and Guilherme Carreiro
1f58216f48
Add unit test mixing positional and kwargs arguments
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Gray Gilmore
d38795168b
Update test/integration/tags/table_row_test.rb
...
Co-authored-by: Gray Gilmore <[email protected] >
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
6aa4041c0f
Rename with_error_mode(...) to with_error_modes(...)
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Alok Swamy
d63dd104de
Update test/integration/tags/render_tag_test.rb
...
Co-authored-by: Alok Swamy <[email protected] >
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Alok Swamy
1733586242
Update test/unit/tags/case_tag_unit_test.rb
...
Co-authored-by: Alok Swamy <[email protected] >
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
018442b7d1
Covered changes with more tests, remove redundant cases, and the new with_error_mode(*modes)
...
Most of changes update this:
```
[:lax, :strict].each do |mode|
with_error_mode(mode) do
assert_template_result(...
```
to be this:
```
with_error_mode(:lax, :strict) do
assert_template_result(...
```
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
a23c71e40b
Fix variable to keep it backward-compatible in strict mode
...
* lax_parse - no changes
* strict_parse - uses the `lax_parse_filter_expressions` (as it was doing before)
* rigid_parse - uses the `rigid_parse_filter_expressions`
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
738540a601
Update infrastructure that handles parsing switching:
...
* Remove development helpers from parse context
* Simplify strict_parse_with_error_mode_fallback and update
documentation
* Add unit tests for `Liquid::Expression` and `Liquid::ParseContext`
* Update test helpers to work better with the `:rigid` mode
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
34ab3bdc8e
Fix assert_template_result tests not picking up Liquid::Environment.default.error_mode
...
The `rake test` command gave us the impression that we were running all the tests
on all the error modes, that was false.
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
1be1e36a8d
Fixup cycle rigid parsing to be backwards compatible
2025-10-27 16:33:31 +01:00
Charles-P. Clermont and Guilherme Carreiro
5660ce6945
render end of string is not optional
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
5ec3008b37
Add rigid parser to tablerow tag
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
5248025439
Remove redundant tests where rigid and strict modes have the same
...
behavior
2025-10-27 16:33:31 +01:00
Guilherme Carreiro and Guilherme Carreiro
0bc69b86b7
No longer test ParseContext directly on RigidModeUnitTest as
...
now the `safe: true` calls are considered safe
Test the entire template instead
2025-10-27 16:33:31 +01:00
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