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
a03f02789b
Only use MethodLiteral in condition expressions ( #1300 )
2020-09-25 11:10:33 -04:00
Dylan Thacker-Smith
ca4b9b43af
Port liquid-c bug compatible whitespace trimming ( #1291 )
2020-09-16 16:07:36 -04:00
Dylan Thacker-Smith
77084930e9
Bring back silencing of errors in blank nodes for backwards compatibility ( #1292 )
2020-09-15 10:35:18 -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
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
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
3b486425b0
Handle BlockBody#blank? at parse time ( #1287 )
2020-09-03 11:07:13 -04:00
Dylan Thacker-Smith
b08bcf00ac
Push interrupts from Continue and Break tags rather than from BlockBody ( #1286 )
2020-09-03 06:55:24 -04:00
Dylan Thacker-Smith
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
5532df880f
Handle disabled tags errors like other liquid errors ( #1275 )
2020-08-18 11:39:54 -04:00
Dylan Thacker-Smith
2b11efc3ae
Fix performance regression from introduction of Template#disable_tags ( #1274 )
2020-08-18 11:25:51 -04:00
Dylan Thacker-Smith
065ccbc4aa
Remove support for taint checking
2020-07-23 16:22:46 -04:00
Feken Baboyan
8541c6be35
make Template override static registers only when the register key is not defined
2020-05-28 09:08:03 -04:00
Thierry Joyal
f5011365f1
[StaticRegisters] Remove registers attr_reader
2020-05-22 10:51:07 -04:00
Thierry Joyal
b9979088ec
[StaticRegisters] Fetch raise on missing
...
Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com >
2020-05-22 09:35:47 -04:00
Dylan Thacker-Smith
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
Celso Dantas
c08a358a2b
Use String literal instead of using a class method
...
The class method string definition is not needed here, so it can be removed.
2020-01-16 09:42:32 -05:00
Dylan Thacker-Smith
48a155a213
Initialize Liquid::Template class attributes eagerly instead of lazily ( #1223 )
2020-01-10 17:42:01 -05:00
Dylan Thacker-Smith
ef79fa3898
style: Avoid deep nesting for parsing the liquid tag in the block body
2020-01-09 19:13:13 -05:00
Dylan Thacker-Smith
f7ad602bfc
Fix liquid tag nested in outer block
2020-01-09 19:13:13 -05:00
Dylan Thacker-Smith
67eca3f58d
Upgrade rubocop and style guide for ruby 2.7 compatibility
2020-01-09 13:15:34 -05:00
Thierry Joyal
0847bf560f
Merge pull request #1218 from Shopify/strainer/remove-safe-navigation
...
Remove handling of a nil context in the Strainer class
2020-01-07 11:54:49 -05:00
Dylan Thacker-Smith
8074565c3e
Merge pull request #1216 from Shopify/unsupported-taint-mode
...
Remove support for taint_mode on ruby versions that don't support it
2020-01-07 10:12:36 -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
Dylan Thacker-Smith
40c68c9c83
Remove support for taint_mode on ruby versions that don't support it
2019-12-19 11:12:51 -05:00
Martin Morissette
d8f31046a9
Introduce template factory
2019-12-17 21:45:08 -05:00
Mike Angell
57c9cf64eb
Allow render to handle with and for correctly ( #1193 )
...
* Allow render to handle with and for correctly
* code improvements
2019-10-23 04:12:46 +10:00
Alessandro Diogo Brückheimer
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
3784020a8d
[New Feature] Add forloop inside render tag when using for syntax ( #1191 )
...
* Add forloop to render for syntax
* Remove forloop guard
2019-10-17 23:06:13 +10:00
Mike Angell
2bfeed2b00
Resolve InputIterator dropping context ( #1184 )
...
* Resolve InputIterator dropping context
* Prefer attr_reader
2019-10-09 08:00:16 +11:00
Mike Angell
04b800d768
Add support for as in Render and Include tags ( #1181 )
...
* Add support for alias
* Remove duplicate code
* Default to template name
* Improve variable matching
* Extract render_partial
* remove method
2019-10-09 07:59:52 +11:00
Mike Angell
f1d62978ef
Allow default function to handle false as value ( #1144 )
...
* Allow default function to handle false as value
* Change to named parameter
* Remove redundant freeze
* add brackets to make intention clearer
* Use named param format from liquid
* Update syntax
* document default filter
2019-10-09 04:03:33 +11:00
uchoudh
fefee4c675
Add liquid profile attributes
...
Attribute testing
Add partial name support
2019-10-03 10:12:39 -04:00
Mike Angell
1aa7d3d2ba
Change registers to by symbols ( #1178 )
2019-09-27 04:32:24 +10:00
Mike Angell
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
b667bcb48b
Shopify stye guide fixes ( #1160 )
2019-09-20 02:08:11 +10:00
Ashwin Maroli
2c14e0b2ba
Use Regexp#match? when MatchData is not used ( #1165 )
...
* Use `Regexp#match?` when `MatchData` is not used
* Add `TargetRubyVersion: 2.4` to RuboCop config
2019-09-20 02:07:52 +10:00
Mike Angell
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
Mike Angell
adb40c41b7
Enable frozen_string_literal
2019-09-18 13:40:07 +10:00
Mike Angell
d8403af515
Reimplementation of Static Registers ( #1157 )
2019-09-18 13:25:55 +10:00
Mike Angell
0d26f05bb8
Enabled frozen string literals ( #1154 )
...
* Enabled frozen string literals
* Update rubocop config
* Prefer string interpolation in simple cases
Co-Authored-By: Dylan Thacker-Smith <dylan.smith@shopify.com >
2019-09-18 13:19:45 +10:00
Thierry Joyal
1dcad34b06
Merge pull request #1151 from Shopify/invokable-methods-for-enumerable-reject-include
...
Invokable methods for enumerable reject include?
2019-09-16 09:49:40 -04:00
Mike Angell
9a42c8c8b2
Merge pull request #1149 from Shopify/liquid-usage
...
Add usage tracking
2019-09-16 12:14:50 +10:00