Peter Zhu
abed47547c
Fix tags in comment
2022-11-01 13:04:41 -04:00
Dylan Thacker-Smith
db8e85ab31
Prevent an internal error in include tag from non-string template_name
...
which would otherwise happen on `template_name.split('/')`
2022-10-28 13:59:00 -04:00
Dylan Thacker-Smith
f484b868d0
assert_template_result: Avoid using the BlankFileSystem
...
Since it doesn't reflect the real liquid usage that we are trying
to test against.
2022-10-28 13:55:33 -04:00
Dylan Thacker-Smith and GitHub
96b5325f87
Remove Usage.increment calls that have been shown to in fact be used ( #1645 )
...
I think these were added for undocumented features to see if they were
actually used and they were being used.
2022-10-26 09:21:43 -04:00
Dylan Thacker-Smith and GitHub
6ce4ec1011
tablerow: Avoid accidental special case for constant nil cols ( #1644 )
...
It should behave the same as an expression that evaluates to nil
2022-10-25 10:21:03 -04:00
Dylan Thacker-Smith
c0c191cabd
Add assertions for truncate filter with large integers
2022-10-11 12:44:33 -04:00
Dylan Thacker-Smith
6765d93938
Avoid internal errors for large arguments to slice filter
...
Use saturating conversion, which has expected semantics for large integers.
2022-10-11 12:44:32 -04:00
Dylan Thacker-Smith
4f17abfb4a
Handle truncatewords word length out of range as if no truncation is needed
2022-10-11 12:44:32 -04:00
Michael Go
fbab19ac8c
fix tablerow drop's last attribute with missing cols param
2022-10-05 11:15:23 -03:00
Dylan Thacker-Smith and GitHub
456be2f75e
Add a test and improve one for testing break ( #1616 )
2022-09-15 10:08:15 -04:00
Dylan Thacker-Smith and GitHub
ff1c35b986
Stop using assert_template_result in some tests depending on language extension ( #1622 )
2022-09-14 17:03:48 -04:00
Dylan Thacker-Smith
34512df8e9
Use assert_template_result partials option to specify file system state
2022-09-13 10:11:01 -04:00
Dylan Thacker-Smith
bca01e8944
Add assert_syntax_error convenience method
2022-09-13 10:11:01 -04:00
Dylan Thacker-Smith
4648f0fa64
Add sample usage of render_errors: true assert_template_result option
2022-09-06 16:54:38 -04:00
Dylan Thacker-Smith
3a64b3741f
Add sample usage of error_mode test helper option
2022-09-06 16:44:40 -04:00
Dylan Thacker-Smith
2c51a1922a
Add error_mode option to assert_match_syntax_error
2022-09-06 16:44:40 -04:00
Dylan Thacker-Smith
57fdc1b5fb
Add sample use of partials assert_template_result options
2022-09-06 16:44:39 -04:00
Dylan Thacker-Smith
308dfc3cb6
Add partials, error_mode and render_errors options to assert_template_result
2022-09-06 16:44:39 -04:00
Dylan Thacker-Smith and GitHub
2515f3be09
Use assert_template_result & assert_match_syntax_error in more places ( #1611 )
2022-09-01 17:40:39 -04:00
Dylan Thacker-Smith
0787660603
Reserve keyword arguments for new options in assert_template_result
2022-09-01 17:38:09 -04:00
Dylan Thacker-Smith
93c252fe5a
Stop passing unnecessary assigns to assert_match_syntax_error
2022-09-01 17:38:09 -04:00
Dylan Thacker-Smith
df13389940
Stop passing assigns as keyword arguments to assert_template_result
2022-09-01 17:38:08 -04:00
Dylan Thacker-Smith and GitHub
ca2d850eea
Stop using Liquid::Expression.parse for integration testing ( #1610 )
...
Since liquid-c no longer monkey patches it, so we need a higher-level
tests to ensure they are shared across liquid implementations.
2022-09-01 17:37:47 -04:00
Dylan Thacker-Smith and GitHub
eb89f22d93
Raise Liquid::SyntaxError instead of NoMethodError for invalid range ( #1607 )
2022-08-25 12:03:56 -04: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
Dylan Thacker-Smith
21f3337dec
Test a blank line in a comment tag
2022-04-28 09:38:44 -04:00
Charles-P. Clermont and Dylan Thacker-Smith
1f0a0ad55c
Add # inline comment tag.
...
This commit adds a new tag named `#` that behaves like a comment.
Therefore it behaves as you'd expect any tag would work. The difference
with the comment tag is that the comment is in the tag markup and that
there is no block delimiter.
What it looks like in practice:
```liquid
{%- # this is an inline comment -%}
{% # this too is an inline comment %}
{% liquid
# required args:
assign product = product
# optional args:
assign should_show_border = should_show_border | default: true
assign should_show_cursor = should_show_cursor | default: true
%}
{% liquid
# This is a very long comment that spans multiple lines.
# It looks very similar to what it would look like if you wrote
# ruby code instead of liquid. But it doesn't have all the clunk
# of having an open tag and a close tag with so many characters.
%}
```
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-04-28 09:38:44 -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 and GitHub
7357dcf185
Merge pull request #1536 from Shopify/flaky-profiler-test-v2
...
Add artificial execution time in profiler tests
2022-03-07 10:06:13 -05:00
Thierry Joyal
4af38bc549
[StandardFilter] Fix missing @context on iterations
2022-03-07 09:17:07 -05:00
Thierry Joyal
df241abf70
Add artificial execution time in profiler tests
2022-03-07 08:50:03 -05:00
Thierry Joyal
0f5220c391
ContextTest: Classes to use appropriate ancestor
2022-03-04 09:14:57 -05:00
Thierry Joyal
7a23f46fab
ContextTest: Cleanup global variable assignments
2022-03-04 09:10:38 -05:00
Thierry Joyal
1d2bee1f60
Condition#evaluate to receive mandatory context argument
2022-03-02 14:35:31 -05:00
Thierry Joyal
c0ffee16a3
StandardFiltersTest: Initialize following production code paths with context
2022-03-01 16:01:00 +00: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
0d83e64cfe
Add replace_last and remove_last filters ( #1422 )
...
Co-authored-by: ADTC <[email protected] >
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-02-24 14:02:15 -05:00
Dylan Thacker-Smith and GitHub
0d5e01ae98
Fix some internal errors in filters from invalid input. ( #1476 )
...
These fixes came from improving the corresponding test, so these might not
actually be causing problems in practice.
2022-02-24 09:17:37 -05:00
Charles-P. Clermont
1310c4978d
Fix kwarg parsing inconsistency with Liquid::C
...
Liquid::C parses liquid filter arguments with dashes in them, Liquid does not.
For tags that accept kwargs and dumps them on the HTML tag, this is an important feature.
e.g. {{ ... | image_tag: loading: 'lazy', data-something: 'value!' }}
Without this change, Liquid would incorrectly parse the
`data-something` kwarg as a single argument and would skip over the
invalid characters.
See https://github.com/Shopify/theme-check/issues/539 for more context
2022-02-11 15:10:07 -05:00
Anders Søgaard and GitHub
db3999a008
Improve where filter tests ( #1472 )
2021-09-16 10:02:39 -04:00
Charles-P. Clermont
c8906d05b9
Add ParseTreeVisitor to RangeLookup
2021-09-09 11:22:39 -04:00
Michael Go and GitHub
50d1a2ffc9
Merge pull request #1458 from Shopify/use-to-liquid-value-with-conditions
...
use Utils.to_liquid_value on conditionals
2021-06-15 12:18:14 -03:00
Michael Go
f686c5dec7
use Utils.to_liquid_value on conditionals
2021-06-14 18:19:37 -03:00
Michael Go and GitHub
aa8ce87b96
Merge pull request #1454 from Shopify/default-filter-with-to-liquid-value
...
utilize input's to_liquid_value on default filter
2021-06-14 15:43:56 -03:00
Michael Go
ac66dbbafe
utilize input's to_liquid_value on default filter
2021-06-08 15:20:53 -03:00
Daniel Insley and GitHub
017c1b5e83
Base64 Decode & Encode Filters ( #1450 )
2021-06-03 13:23:11 -04:00
Michael Go
e361a4d53c
introduce to_liquid_value on variable look and conditional statements
2021-05-26 17:27:18 -03:00
Dylan Thacker-Smith and GitHub
cfe1637bdd
Translate RangeError to Liquid::Error for truncatewords with large int ( #1431 )
2021-04-20 11:48:22 -04:00
Dylan Thacker-Smith and GitHub
ca96ca0fef
Fix support for using a String subclass for the liquid source ( #1421 )
2021-03-29 16:22:05 -04:00