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 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 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
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
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
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
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
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
7c592c1c00
store StringScanner in ParseContext and reuse it through parsing
2025-01-07 14:32:45 -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
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
Michael Go
3ed54bfdf9
propagate Environment on new Context creation
2024-11-04 15:32:07 -04:00