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
Ieva Grazuleviciute
407a8e5b0f
Fix for custom tag rendering
2023-10-20 11:42:54 +03:00
Michael Go
dd7bbf26bc
include error mode to partial cache key
2023-06-23 18:48:07 -03:00
Michael Go
24dceef552
set context's template_name with template's name
2023-02-28 10:55:38 -04:00
Dylan Thacker-Smith and GitHub
e650dc4195
Revert "Instrument usage of bug with iteration of String with offset or 0 limit ( #1667 )" ( #1677 )
...
This reverts commit c743936a78 .
2023-02-22 12:48:18 -05:00
Guilherme Carreiro and GitHub
9ab688eada
Update rubocop-shopify (2.7.0 -> 2.12.0) ( #1687 )
2023-02-15 08:40:59 +01:00
Michael Go
bd9c3802c8
add variable parser timeout unit tests
2023-02-01 21:15:35 -04:00
Dylan Thacker-Smith and GitHub
c743936a78
Instrument usage of bug with iteration of String with offset or 0 limit ( #1667 )
2023-01-11 14:05:50 -05:00
Charles-P. Clermont
992e15a173
Add variable_name_expr to render's ParseTreeVisitor
...
Solves Shopify/theme-check#582
`icon` should be visited in the render tag for the following snippet:
```liquid
{% assign icon = 'warning' }
{% render 'icon' with icon %}
```
2022-07-18 08:48:18 -04:00
Dylan Thacker-Smith
41c19929ad
Rename and alias Liquid::StaticRegisters to Liquid::Registers
2022-05-04 17:25:52 -04:00
Chris AtLee and Dylan Thacker-Smith
6c2c621712
Ensure that partial caches are shared with subcontexts
...
Make Context use StaticRegisters by default. This makes it easier to
ensure that all subcontexts share the same static registers.
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-04-08 10:05:58 -04:00
Thierry Joyal
1d2bee1f60
Condition#evaluate to receive mandatory context argument
2022-03-02 14:35:31 -05:00
Jean Boussier
c588337aac
Eagerly cache global filters
...
Including a module can cause Ruby's global constant cache to be busted
if the included module contain constants. So that's something you don't
want to happen at "runtime", otherwise it will severely degrade performance
and if you are using YJIT or MJIT most of the compiled code will be invalidated.
To limit the impact of this, we can pre-include the global filters,
as they're generally registered during boot, that limits the problem
to non-global filters.
2022-03-01 13:40:40 +01:00
Charles-P. Clermont
c8906d05b9
Add ParseTreeVisitor to RangeLookup
2021-09-09 11:22:39 -04:00
Charles-P. Clermont
c270a6f378
Add ParseTreeVisitor to Echo tag
...
This fixes theme-check#218, wherein variables used in echo tags are not
considered used by the linter. It is because our visitor doesn't see the
:variable_lookup's in the echo tag since the children array is empty.
But this array is empty because it is swallowed by the @variable.
2021-03-24 09:35:43 -04:00
Dylan Thacker-Smith and GitHub
260c863e23
Build the tokenizer through the parse context for liquid-c ( #1386 )
2021-01-07 14:51:41 -05:00
Dylan Thacker-Smith
f7d67b946e
rubocop autocorrect Style/MethodCallWithArgsParentheses
2020-12-11 13:51:00 -05:00
Dylan Thacker-Smith
013802c877
Move some unit tests without internal coupling to integration tests
...
since I would like to continue supporting these tests in liquid-c
in the foreseeable future.
2020-09-25 11:24:39 -04:00
Dylan Thacker-Smith
3dcad3b3cd
Move test/integration/parse_tree_visitor_test.rb to test/unit
...
The ParseTreeVisitor exposes the liquid internals that won't be
kept compatible with liquid-c, so move it out of the integration
tests directory so that we can easily ignore it when testing liquid-c
2020-09-25 11:24:39 -04:00
Dylan Thacker-Smith and GitHub
2b11efc3ae
Fix performance regression from introduction of Template#disable_tags ( #1274 )
2020-08-18 11:25:51 -04:00
Thierry Joyal
03be7f1ee3
[StaticRegisters] Add test coverage
2020-07-28 10:23:51 -04:00
Thierry Joyal
bd1f7f9492
[StaticRegisters] Remove assertion for delete to not remove static content
2020-05-22 13:42:44 -04:00
Thierry Joyal and Dylan Thacker-Smith
40d75dd283
Update test/unit/static_registers_unit_test.rb
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2020-05-22 12:15:52 -04:00
Thierry Joyal
f5011365f1
[StaticRegisters] Remove registers attr_reader
2020-05-22 10:51:07 -04:00
Thierry Joyal and Dylan Thacker-Smith
b9979088ec
[StaticRegisters] Fetch raise on missing
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2020-05-22 09:35:47 -04:00
Dylan Thacker-Smith and GitHub
e9b649b345
Fix Liquid::Template inheritance ( #1227 )
...
self.class.default_resource_limits would return `nil` in a subclass, since
the attribute isn't set on subclasses.
2020-01-21 15:09:22 -05:00
Thierry Joyal
c0ffee3ff9
[Strainer] Remove safe navigation
2020-01-06 18:34:13 +00:00
Thierry Joyal
c0ffeeef26
[Strainer] Separate factory from template
2020-01-06 17:45:25 +00:00
Martin Morissette
d8f31046a9
Introduce template factory
2019-12-17 21:45:08 -05:00
Alessandro Diogo Brückheimer and Mike Angell
e83b1e4159
Add ForceEqualSignAlignment to .rubocop.yml ( #1190 )
...
* Add ForceEqualSignAlignment to .rubocop.yml
* Revert ForceEqualSignAlignment cop
* Update method alignment
* Undo addition of whitespace to improve readability
* Fix missing alignment
2019-10-21 21:18:48 +10:00
Mike Angell and GitHub
5302f40342
Rubocop fixes ( #1182 )
2019-10-07 17:06:47 +11:00
Mike Angell and GitHub
0db9c56f34
Disable rendering of tag based on register ( #1162 )
...
* Disable rendering of tag based on register
* Improvements to disable tag
* Resolve disbale tag tests
* Test disable_tags register
* disabled_tags is now always avaiable
* Allow multiple tags to be disabled at once
* Move disabled check to block_body
* Code improvements
* Remove redundant nil check
* Improve disabled tag error output
* Improve disable tag API
* Code improvements
* Switch disabled? to not mutate output
* Fix array handling shortcut in disable_tags
2019-09-26 00:18:30 +10:00
Mike Angell and GitHub
b667bcb48b
Shopify stye guide fixes ( #1160 )
2019-09-20 02:08:11 +10:00
Mike Angell and GitHub
ef13343591
Changes static registers to not be frozen ( #1163 )
...
* Changes static registers to not be frozen
* Add frozen test to static registers
2019-09-20 00:24:48 +10:00