Dylan Thacker-Smith and GitHub
8b68630a11
Merge pull request #1474 from Shopify/clarify-warn-error-mode-doc
...
Clarify that the error_mode: :warn parse option is only for strict errors
2022-04-21 12:25:36 -04:00
Dylan Thacker-Smith and GitHub
1cae1e497f
Merge pull request #1560 from ghousemohamed/fix-typo
...
Fix typo: syntetic -> synthetic
2022-04-05 20:15:09 -04:00
Dylan Thacker-Smith and GitHub
ed7dae50aa
Merge pull request #1562 from ghousemohamed/bump-actions-checkout-to-v3
...
Bump actions/checkout to v3
2022-04-05 19:46:41 -04:00
Dylan Thacker-Smith and GitHub
6e07f73f68
History.md: Remove non-fix from fixes section of recent release. ( #1556 )
2022-03-23 11:59:50 -04:00
Dylan Thacker-Smith and GitHub
97f7922457
Add missing changelog entry for PR #1518 ( #1521 )
2022-02-24 14:46:26 -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
Dylan Thacker-Smith
0e14d539a3
README: Use newer hash syntax for the error_mode parse option
2021-09-16 10:16:36 -04:00
Dylan Thacker-Smith
db106ae058
Clarify that the error_mode: :warn parse option is only for strict errors
2021-09-16 10:13:57 -04:00
Dylan Thacker-Smith
b9e0d28729
rubocop: Clarify that a config is a rubocop-shopify backport
2021-04-20 09:01:06 -07:00
Dylan Thacker-Smith
020f6b93c5
rubocop: Fix unsupported ruby version in TargetRubyVersion error
2021-04-20 09:00:20 -07: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
eab13a07d9
Add changelog entry for a recent fix
2021-03-29 13:43:01 -07: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
Dylan Thacker-Smith and GitHub
4fba61a802
Merge pull request #1402 from Shopify/rubocop-shopify
...
Use the rubocop-shopify gem and autocorrect
2021-03-16 17:39:09 -04:00
Dylan Thacker-Smith and GitHub
6b6baece25
Merge pull request #1406 from ADTC/patch-2
...
Add a line to Sign the CLA as the first step in Workflow
2021-02-26 09:03:40 -05:00
Dylan Thacker-Smith
9dac68cce1
Use the rubocop-shopify gem
2021-02-21 12:22:03 -05:00
Dylan Thacker-Smith
c50509b741
Commit rubocop remote configuration update
2021-02-21 12:02:55 -05:00
Dylan Thacker-Smith
cd66572514
Rubocop autocorrections to prepare for rubocop config updates
2021-02-21 12:01:59 -05:00
Dylan Thacker-Smith and GitHub
dcb5a67089
performance: Use split limit in truncatewords ( #1361 )
2021-02-19 13:11:35 -05:00
Dylan Thacker-Smith and GitHub
8625e66453
CI: Test with ruby 3.0 as the latest ruby version ( #1398 )
2021-02-10 10:10:27 -05: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 and GitHub
7ba0fc7952
Merge pull request #1376 from Shopify/support-app-liquid-context
...
Use the same context class for isolated subcontexts for the require tag
2020-12-14 12:12:46 -05:00
Dylan Thacker-Smith
40a9b72b3c
Allow a block to finish context init before squashing instance assigns
...
Liquid::Context#squash_instance_assigns_with_environments can result in
Proc objects in the environment to be eagerly evaluated. So it should be
possible to finish initializing the context object before this is done.
Allowing a block to be used for this purpose avoids the need to add
additional parameters for this purpose.
2020-12-11 14:52:09 -05:00
Dylan Thacker-Smith
4ff26cd707
Use the same context class for isolated subcontexts for the require tag
2020-12-11 14:52:09 -05:00
Dylan Thacker-Smith and GitHub
462919a28f
Merge pull request #1375 from Shopify/update-rubocop
...
Update rubocop and related configuration
2020-12-11 14:47:56 -05:00
Dylan Thacker-Smith
f3e2be9f85
Update rubocop
2020-12-11 14:14:15 -05:00
Dylan Thacker-Smith
4d40f83457
Update .rubocop_todo.yml to ignore Lint/MissingSuper offenses in drops
...
I don't think we can rely on the application to call `super` in their
drop's initializers at the moment, so doing that consistently in liquid
would prevent this from being properly tested.
2020-12-11 14:14:15 -05:00
Dylan Thacker-Smith
00be1e4dd4
Update inherited rubocop shopify style guide configuration
2020-12-11 14:14:15 -05:00
Dylan Thacker-Smith
f7d67b946e
rubocop autocorrect Style/MethodCallWithArgsParentheses
2020-12-11 13:51:00 -05:00
Dylan Thacker-Smith and GitHub
6dec172743
Merge pull request #1366 from Shopify/profile-render-node
...
Create top-level profile timing nodes for multiple template renders
2020-12-09 10:07:31 -05:00
Dylan Thacker-Smith
da581d988a
Create top-level profile timing nodes for multiple template renders
2020-12-09 10:06:02 -05:00
Dylan Thacker-Smith
7960826552
Rename render_profiling_test.rb to profiler_test.rb
...
so it corresponds to the class name being tested
2020-12-09 10:06:02 -05:00
Dylan Thacker-Smith and GitHub
84059691b8
Merge pull request #1365 from Shopify/profiling-multiple-renders
...
Support using a profiler for multiple renders
2020-12-09 10:05:48 -05:00
Dylan Thacker-Smith
896288eff1
Move start of profiling to a Document#render_to_output_buffer patch
2020-12-09 10:04:34 -05:00
Dylan Thacker-Smith
b3f132efd1
Fix total_render_time if a Profiler gets used for multiple renders
2020-12-09 10:04:34 -05:00
Dylan Thacker-Smith and GitHub
60214b957c
Store the profiler in the context instead of a thread-local variable ( #1364 )
2020-12-09 10:04:20 -05:00
Dylan Thacker-Smith and GitHub
7361220af6
Merge pull request #1363 from Shopify/profiler-context-template-name
...
Fix template name in profile result for render tag timing objects
2020-12-09 10:03:42 -05:00
Dylan Thacker-Smith
cb2ad71a31
Remove the Profiler#initialize argument which is effectively now unused
...
The @root_timing Timing object that it was used with never exposed that
name.
2020-12-09 10:01:16 -05:00
Dylan Thacker-Smith
900e3a6491
Fix template name in profile result for render tag timing objects
2020-12-09 10:01:16 -05:00
Dylan Thacker-Smith and GitHub
f18084203d
Use monotonic time to measure durations in Liquid::Profiler ( #1362 )
2020-12-09 10:00:44 -05:00
Dylan Thacker-Smith and GitHub
1850511334
Use an atomic subgroup in range regex to avoid pathological backtracking ( #1360 )
2020-11-16 10:29:36 -05:00
Dylan Thacker-Smith and GitHub
8f7f8761d1
Use Array#each instead of Array#inject to avoid an object allocation ( #1341 )
2020-10-29 11:24:19 -04:00
Dylan Thacker-Smith and GitHub
ea6e326b9c
Fix FrozenError for blank case tag with multiple expression when tag ( #1340 )
2020-10-28 13:37:17 -04:00
Dylan Thacker-Smith and GitHub
7754d5aef5
Attempt to strict parse variables before lax parsing in lax error mode ( #1338 )
2020-10-28 10:37:00 -04:00
Dylan Thacker-Smith and GitHub
1d63d5db5f
Fix a leaky test that set Tempate.error_mode without resetting it ( #1339 )
2020-10-28 10:36:33 -04:00
Dylan Thacker-Smith and GitHub
f23c2a83f2
Fix lax parsing expressions surrounded by spaces ( #1335 )
...
to make it compatible with strict parsing and liquid-c
2020-10-27 14:53:57 -04:00
Dylan Thacker-Smith and GitHub
10ea6144e0
Add Liquid::ParseContext#parse_expression for liquid-c node disabling ( #1333 )
...
We would like to be able to disable liquid-c VM rendering at runtime,
but right now expression parsing is done using Expression.parse, which
isn't aware of the parse context. That prevents us from conditionally
compiling to VM code based on a parse option.
2020-10-27 11:00:04 -04:00
Dylan Thacker-Smith and GitHub
4c6166f989
Add parsing quirk test for lookup on variable with literal name ( #1325 )
2020-10-21 16:30:17 -04:00
Dylan Thacker-Smith and GitHub
f6532de1fd
Merge pull request #1323 from Shopify/assign-score-hash
...
Avoid allocating arrays of key value pairs in assign_score_of
2020-10-21 11:18:35 -04:00
Dylan Thacker-Smith
001fde7694
Avoid allocating arrays of key value pairs for hashes in assign_score_of
2020-10-21 10:36:00 -04:00
Dylan Thacker-Smith
b872eac2b9
More comprehensively test assign_score_of
2020-10-21 10:35:56 -04:00
Dylan Thacker-Smith
038d0585cf
Move some assign score increment tests to the tag that increments
2020-10-21 10:21:00 -04:00
Dylan Thacker-Smith and GitHub
c9ad9d338c
Extract method for raising a syntax error in the assign tag for liquid-c ( #1321 )
2020-10-20 16:59:52 -04:00
Dylan Thacker-Smith and GitHub
ae6bd9f6b0
Allow an empty variable tag during strict parsing for liquid-c compat ( #1320 )
2020-10-20 14:11:48 -04:00
Dylan Thacker-Smith and GitHub
866e437c05
Test tag disabling using custom tags ( #1318 )
...
Since I don't think we have any use case to disable the `raw` or
`echo` tags, so I would like liquid-c to not have to support that
2020-10-19 16:32:02 -04:00
Dylan Thacker-Smith and GitHub
784db053f2
Merge pull request #1317 from Shopify/strict-parse-dynamic-find-var
...
Fix strict parsing of find variable with a name expression
2020-10-19 13:43:26 -04:00
Dylan Thacker-Smith and GitHub
ff1c6bd26e
Actually remove test file with no extension moved into another test file ( #1316 )
2020-10-19 12:40:02 -04:00
Dylan Thacker-Smith
46fd63da5f
Fix strict parsing of find variable with a name expression
2020-10-19 12:17:25 -04:00
Dylan Thacker-Smith
420a1c79e1
Refactor variable lookup strict parsing to reduce coupling on dot lookup
2020-10-19 12:10:32 -04:00
Dylan Thacker-Smith
6d39050e1e
Use a case statement in Liquid::Parser#expression
2020-10-19 12:10:11 -04:00
Dylan Thacker-Smith and GitHub
077bf2a409
Test reporting of liquid error for filter call with wrong number of arguments ( #1311 )
2020-10-08 11:55:40 -04:00
Dylan Thacker-Smith and GitHub
1a3e38c018
Merge pull request #1310 from Shopify/only-integration-test-liquid-c
...
Fix liquid-c integration testing
2020-10-08 11:52:50 -04:00
Dylan Thacker-Smith
e495f75cc2
Remove support for ruby 2.4, which is no longer supported upstream
2020-10-08 09:48:16 -04:00
Dylan Thacker-Smith
e781449c36
Remove root directory from library search path for tests
...
It isn't in the gemspec's require_path, so we shouldn't add any dependence
on it.
2020-10-08 01:53:11 -04:00
Dylan Thacker-Smith
7eb03ea198
Only test liquid-c integration using the integration tests
2020-10-08 01:52:40 -04:00
Dylan Thacker-Smith and GitHub
d250a7f502
Set Context#initialize instance variables before squashing assigns ( #1307 )
2020-10-06 21:00:08 -04:00
Dylan Thacker-Smith and GitHub
a818dd9d19
Fix test with missing extension ( #1302 )
2020-09-30 13:44:28 -04:00
Dylan Thacker-Smith and GitHub
efef03d944
Merge pull request #1294 from Shopify/changes-for-liquid-c-vm-variable
...
Refactor to support liquid-c VM compilation of variables
2020-09-29 21:02:26 -04:00
Dylan Thacker-Smith
33760f083a
Extract rescue code from BlockBody#render_node for re-use in liquid-c
2020-09-25 11:24:39 -04: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
db065315ba
Allow creating symbols that are garbage collected in a test
2020-09-25 11:24:39 -04:00
Dylan Thacker-Smith and GitHub
a03f02789b
Only use MethodLiteral in condition expressions ( #1300 )
2020-09-25 11:10:33 -04:00
Dylan Thacker-Smith and GitHub
ca4b9b43af
Port liquid-c bug compatible whitespace trimming ( #1291 )
2020-09-16 16:07:36 -04:00
Dylan Thacker-Smith and GitHub
77084930e9
Bring back silencing of errors in blank nodes for backwards compatibility ( #1292 )
2020-09-15 10:35:18 -04:00
Dylan Thacker-Smith and GitHub
fb77921b15
Merge pull request #1290 from Shopify/document-unknown-tag-refactor
...
Pass the tag markup and tokenizer to Document#unknown_tag
2020-09-11 09:34:16 -04:00
Dylan Thacker-Smith
0d02dea20b
Rename Liquid::Block#unknown_tag parameters for clarity
2020-09-11 09:33:12 -04:00
Dylan Thacker-Smith
86b47ba28b
Pass the tag markup and tokenizer to Document#unknown_tag
...
The parse_context no longer needs to be passed in because it is available
through through an attr_reader on the instance. However, the markup and
tokenizer weren't made available. This refactor also makes the parameters
given to Document#unknown_tag consistent with Block#unknown_tag.
2020-09-11 09:33:12 -04:00
Dylan Thacker-Smith and GitHub
95ff0595c6
Merge pull request #1289 from Shopify/refactor-for-c-block-body
...
Avoid direct coupling to BlockBody instances for liquid-c replacement
2020-09-11 09:15:58 -04:00
Dylan Thacker-Smith
bbc56f35ec
Add ParseContext#new_block_body to centralize the liquid-c override point
2020-09-09 12:25:35 -04:00
Dylan Thacker-Smith
dfbbf87ba9
Use BlockBody from Document using composition rather than inheritence
...
This way liquid-c can more cleanly use a Liquid::C::BlockBody object
for the block body by overriding Liquid::Document#new_body.
2020-09-08 14:00:52 -04:00
Dylan Thacker-Smith
037b603603
Turn some Liquid::BlockBody methods into class methods for liquid-c
...
So they can be used from a Liquid::C::BlockBody
2020-09-08 14:00:48 -04:00
Dylan Thacker-Smith
bd33df09de
Provide Block#new_body so that liquid-c can override it
...
This way liquid-c can return a body of a different class that wraps
a C implementation.
2020-09-08 13:59:48 -04:00
Dylan Thacker-Smith and GitHub
6ca5b62112
Merge pull request #1285 from Shopify/fix-render-length-resource-limit
...
Fix render length resource limit so it doesn't multiply nested output
2020-09-08 13:57:30 -04:00
Dylan Thacker-Smith
e1a2057a1b
Update assign_score during capturing
...
To stop long captures before they grow the heap more then they should.
2020-09-03 11:13:08 -04:00
Dylan Thacker-Smith
ae9dbe0ca7
Fix render length resource limit so it doesn't multiply nested output
2020-09-03 11:13:04 -04:00
Dylan Thacker-Smith and GitHub
3b486425b0
Handle BlockBody#blank? at parse time ( #1287 )
2020-09-03 11:07:13 -04:00
Dylan Thacker-Smith and GitHub
b08bcf00ac
Push interrupts from Continue and Break tags rather than from BlockBody ( #1286 )
2020-09-03 06:55:24 -04:00
Dylan Thacker-Smith and GitHub
0740e8b431
Remove unused quirk allowing liquid tags to close a block it is nested in ( #1284 )
2020-09-03 06:51:56 -04:00
Dylan Thacker-Smith and GitHub
5532df880f
Handle disabled tags errors like other liquid errors ( #1275 )
2020-08-18 11:39:54 -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
Dylan Thacker-Smith and GitHub
1ced4eaf10
Merge pull request #1268 from Shopify/remove-taint-checking
...
Remove support for taint checking
2020-07-25 21:27:46 -04:00
Dylan Thacker-Smith
4970167726
Bump rake development dependency
...
Gets rid of a deprecation warning when running the tests.
2020-07-23 16:23:18 -04:00
Dylan Thacker-Smith
065ccbc4aa
Remove support for taint checking
2020-07-23 16:22:46 -04:00
Dylan Thacker-Smith and GitHub
bd0e53bd2e
Merge pull request #1239 from Shopify/remove-bad-arity-assumption
...
Fix ParseTreeVisitorTest for ruby-head
2020-05-21 14:02:04 -04:00
Dylan Thacker-Smith
c2f67398d0
Allow ruby-head failures
...
Ignore an object allocation test failure on ruby-head for now.
2020-03-31 10:53:49 -04:00
Dylan Thacker-Smith
81149344a5
Fix ParseTreeVisitorTest for ruby-head
2020-03-31 10:53:46 -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
Dylan Thacker-Smith and GitHub
48a155a213
Initialize Liquid::Template class attributes eagerly instead of lazily ( #1223 )
2020-01-10 17:42:01 -05:00
Dylan Thacker-Smith and GitHub
c69a9a77c6
Merge pull request #1215 from Shopify/nested-liquid-tag
...
Fix liquid tag nested in outer block
2020-01-09 19:24:52 -05:00