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
Michael Go and GitHub
06f44226c0
Merge pull request #1846 from Shopify/env-propgating
...
propagate Environment on new Context creation
2024-11-04 15:33:50 -04:00
Michael Go
3ed54bfdf9
propagate Environment on new Context creation
2024-11-04 15:32:07 -04: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
Alex Coco
9067e5167a
Handle interrupts in table row
2024-08-15 11:56:29 -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 and GitHub
dba733084e
Merge pull request #1760 from mtasaka/nil-nil-comparison-fix
...
change: make nil_safe_casecmp judge compatible for nil-nil comparison
2024-03-21 15:38:13 -04:00
Michael Go
a5e5fab82a
update variable's context before invoking its to_liquid
2024-02-12 16:48:20 -04:00
Ian Ker-Seymer
1b2b62964e
Allow for binary comparison of incompatible strings
2024-01-30 19:03:05 -05:00
Michael Go and GitHub
9b38a15282
Merge pull request #1776 from Shopify/refactor/invalid-encoding-error
...
add new TemplateEncodingError
2024-01-12 12:38:34 -04:00
Michael Go
7b25b770af
add new TemplateEncodingError
2024-01-12 12:17:20 -04:00
Michael Go
6a0fe3f7e3
convert template source to string to ensure encoding validity
2024-01-10 16:50:31 -04:00
Michael Go
730ad3684a
allow nil template source
2024-01-10 16:32:08 -04:00
Michael Go
369a6c55e3
check template UTF8 validity before parsing
2024-01-10 18:58:15 +00:00
Michael Go
a3c837687e
don't reset Liquid tag's whitespace control from comment tag
2024-01-05 10:21:33 -04:00
Mamoru TASAKA
4924822c88
change: make nil_safe_casecmp judge compatible for nil-nil comparison
...
Ruby returns 0 (not nil) for nil <=> nil, i.e. nil and nil are judged
as equal for comparison, and so returns nil_safe_compare .
ref: https://github.com/Shopify/liquid/pull/1476
To make the behavior of nil_safe_casecmp consistent with
nil_safe_compare , change nil_safe_casecmp so that comparison between
nil <=> nil return 0 (equal).
Also change testsuite to reflect this change.
Fixes #1759 .
2023-12-15 15:09:57 +09:00
Michael Go
fc9c338682
refactor: rename comment tag unit test
2023-12-14 17:08:26 -04:00