Andy Waite
c24d3dab32
wip
2022-03-14 13:01:10 -04:00
Andy Waite
dc3162fcd2
wip
2022-03-14 12:58:53 -04:00
Andy Waite
fbe086963c
wip
2022-03-14 12:56:37 -04:00
Andy Waite
378a455830
wip
2022-03-14 12:46:45 -04:00
Andy Waite
2ee44d1341
wip
2022-03-14 12:44:51 -04:00
Andy Waite
6e2939cbaf
wip
2022-03-14 12:41:37 -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 and GitHub
68c3827ef2
Merge pull request #1525 from Shopify/standardfilter/fix-missing-context-on-iterations
...
[StandardFilter] Fix missing @context on iterations
2022-03-07 09:19:18 -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
10f8337209
Test Ruby 3.1 in CI ( #1533 )
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2022-03-04 13:23:04 -05:00
Thierry Joyal and GitHub
5ed0410a8b
Merge pull request #1534 from Shopify/context-test-cleanup
...
Context test cleanup
2022-03-04 11:31:00 -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
Peter Zhu and GitHub
3f7edf00b9
Merge pull request #1531 from Shopify/pz-array-fetch-warning
...
Fix warning about block and default value
2022-03-02 16:25:23 -05:00
Thierry Joyal and GitHub
b4a2a79e26
Merge pull request #1527 from Shopify/condition/receive-mandatory-context-argument
...
Condition#evaluate to receive mandatory context argument
2022-03-02 15:04:24 -05:00
Thierry Joyal
1d2bee1f60
Condition#evaluate to receive mandatory context argument
2022-03-02 14:35:31 -05:00
Peter Zhu
01e6eec97a
Fix warning about block and default value
...
Ruby's Array#fetch accepts either a default value or a block, but not
both. If both are passed in, then it uses the block and outputs this
warning:
```
lib/liquid/static_registers.rb:34: warning: block supersedes default value argument
```
2022-03-02 14:33:12 -05:00
Jean Boussier
fbdab19358
We're in 2022...
2022-03-02 18:27:25 +01:00
Thierry Joyal and GitHub
ce85ac5d3d
Merge pull request #1529 from Shopify/tests/standard-filters-with-context
...
StandardFiltersTest: Initialize following production code paths with context
2022-03-02 08:44:16 -05:00
Thierry Joyal
c0ffee16a3
StandardFiltersTest: Initialize following production code paths with context
2022-03-01 16:01:00 +00:00
Jean Boussier
a7eb33fa39
Release 5.2.0
v5.2.0
2022-03-01 16:18:49 +01:00
Jean byroot Boussier and GitHub
1a85e98793
Merge pull request #1524 from Shopify/global-constant-cache
...
Eagerly cache global filters
2022-03-01 16:14:31 +01: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
Dylan Thacker-Smith and GitHub
97f7922457
Add missing changelog entry for PR #1518 ( #1521 )
2022-02-24 14:46:26 -05: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-Philippe Clermont and GitHub
15eaa49e48
Merge pull request #1518 from Shopify/fix/kwarg-key-name-liquid-c-inconsistency
...
Fix kwarg parsing inconsistency with Liquid::C
2022-02-14 13:22:12 -05:00
Tobias Lütke and GitHub
91c54c579d
Merge pull request #1477 from Watson1978/performance
...
Increase parsing performance
2022-02-14 12:25:19 -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
shainaraskas and GitHub
3de1db3c3a
Merge pull request #1509 from Shopify/1508-shopify-docs-link
...
Fix Shopify documentation link
2022-01-20 12:06:16 -05:00
Shaina Raskas
03522caaf8
fix Shopify documentation link
2022-01-20 09:40:48 -05:00
Shaina Raskas
7acea2a9c9
Revert "fix Shopify documentation link"
...
This reverts commit d8ef698539 .
2022-01-20 09:37:26 -05:00
Shaina Raskas
d8ef698539
fix Shopify documentation link
2022-01-20 09:27:00 -05:00
Watson
ebdfdb80e5
Detect quoted string using String#{start_with?, end_with?} to reduce Regexp#=== calling
2021-09-26 04:30:49 +09:00
Watson
95e9fa5010
Use String#=~ and Regexp.last_match instead to retrieve the markup content
...
If the first value is only used obtained with String#scan,
it will increase the performance if replace with `String#=~` and `Regexp.last_match`.
### Environment
- MacBook Air (M1, 2020)
- macOS 12.0 beta 7
- Apple M1
- Ruby 3.0.2
### Test code
```ruby
require 'benchmark/ips'
WhitespaceControl = '-'
VariableStart = /\{\{/
VariableEnd = /\}\}/
ContentOfVariable = /\A#{VariableStart}#{WhitespaceControl}?(.*?)#{WhitespaceControl}?#{VariableEnd}\z/om
token = "{{item.product.featured_image | product_img_url: 'thumb' }}"
Benchmark.ips do |x|
x.report("String#scan") { token.scan(ContentOfVariable) {|content| break } }
x.report("String#match") { m = token.match(ContentOfVariable); m[1] }
x.report("String#=~") { token =~ ContentOfVariable; Regexp.last_match(1) }
x.compare!
end
```
### Result
```
Warming up --------------------------------------
String#scan 135.724k i/100ms
String#match 117.397k i/100ms
String#=~ 151.637k i/100ms
Calculating -------------------------------------
String#scan 1.351M (± 0.8%) i/s - 6.786M in 5.021955s
String#match 1.169M (± 1.3%) i/s - 5.870M in 5.020429s
String#=~ 1.520M (± 0.9%) i/s - 7.733M in 5.087427s
Comparison:
String#=~: 1520250.9 i/s
String#scan: 1351399.0 i/s - 1.12x (± 0.00) slower
String#match: 1169384.1 i/s - 1.30x (± 0.00) slower
```
2021-09-26 04:12:53 +09:00
Anders Søgaard and GitHub
db3999a008
Improve where filter tests ( #1472 )
2021-09-16 10:02:39 -04:00
Marc-André Cournoyer and GitHub
10e2aa8d5b
Merge pull request #1471 from Shopify/bump-5.1.0
...
Prep for 5.1.0 release
v5.1.0
2021-09-15 15:15:13 -04:00
7c4114671b
Remove to_liquid_value fixes in changelog
...
Co-authored-by: Dylan Thacker-Smith <[email protected] >
2021-09-13 10:53:46 -04:00
Marc-André Cournoyer
b01de9d325
Prep for 5.1.0 release
2021-09-09 14:28:45 -04:00
Zac Clay and GitHub
a5369c26a8
Add missing quote in comment ( #1468 )
2021-09-09 14:23:11 -04:00
Charles-Philippe Clermont and GitHub
a03de8f9ea
Merge pull request #1470 from Shopify/fix/range-parse-tree-visitor
...
Add ParseTreeVisitor to RangeLookup
2021-09-09 11:39:14 -04:00
Charles-P. Clermont
e86fe27259
Fix lint
2021-09-09 11:22: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
Peter Zhu and GitHub
698f5e0d96
Merge pull request #1456 from Shopify/pz-psych-4-unsafe-load
...
Fix benchmark for breaking change in Psych 4
2021-06-10 13:14:13 -04:00
Peter Zhu
996bfe0c82
Fix benchmark for breaking change in Psych 4
...
Psych 4 introduces a breaking change (ruby/psych#487 ) where
`Psych#load`/`Psych#load_file` now default to safe loading,
meaning that YAML references are not allowed anymore. This
commit changes the benchmark to use `Psych#unsafe_load_file`
when it's available.
2021-06-10 13:01:16 -04:00
Michael Go and GitHub
be81c9ae5a
Merge pull request #1457 from Shopify/fix-unless-to-use-to-liquid-value-helper
...
fix unless to use to_liquid_value helper with multiple conditions
2021-06-10 14:00:19 -03:00