Mike Angell
221b5673a0
Fix array handling shortcut in disable_tags
2019-09-26 00:09:51 +10:00
Mike Angell
68abd9c135
Switch disabled? to not mutate output
2019-09-25 23:57:55 +10:00
Mike Angell
644de4c4f5
Code improvements
2019-09-25 23:33:46 +10:00
Mike Angell
9b2d0dc145
Improve disable tag API
2019-09-25 11:34:44 +10:00
Mike Angell
5e9b0bd3e9
Improve disabled tag error output
2019-09-24 09:05:22 +10:00
Mike Angell
695378d8a4
Remove redundant nil check
2019-09-24 04:22:43 +10:00
Mike Angell
a6dfb56a5c
Code improvements
2019-09-24 00:20:51 +10:00
Mike Angell
9f03dff79a
Move disabled check to block_body
2019-09-24 00:07:59 +10:00
Mike Angell
7f136c8fa6
Allow multiple tags to be disabled at once
2019-09-23 23:36:27 +10:00
Mike Angell
008c22230a
disabled_tags is now always avaiable
2019-09-23 22:06:31 +10:00
Mike Angell
4202976d79
Test disable_tags register
2019-09-23 22:02:13 +10:00
Mike Angell
fc4059c8dd
Resolve disbale tag tests
2019-09-23 21:03:35 +10:00
Mike Angell
05234ef6de
Improvements to disable tag
2019-09-23 20:45:09 +10:00
Mike Angell
6f823891bc
Merge branch 'master' into disable-tag
2019-09-23 20:16:41 +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
a39eb8581a
Disable rendering of tag based on register
2019-09-18 18:33:19 +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
Mike Angell
1fcef2133f
Merge pull request #1143 from Shopify/styling-fixes-1
...
Apply simple rubocop fixes
2019-09-16 12:14:32 +10:00
Mike Angell
d7514b1305
Merge pull request #1137 from Shopify/remove-lazy-stacks
...
Remove lazy load stacks
2019-09-16 12:14:14 +10:00
Thierry Joyal
c0ffee5919
Invokable methods for enumerable reject include?
2019-09-12 12:58:51 +00:00
Mike Angell
724d02e9b3
Disable interrupt fix in this round
2019-09-11 06:35:08 +10:00
Mike Angell
a5b387cdd4
Remove reserved word Interrupt to avoid confusion
...
Also resolves rubocop conflicts
2019-09-11 06:32:31 +10:00
Mike Angell
b6547f322e
Simplify usage
2019-09-11 04:56:25 +10:00
Mike Angell
b316ff8413
Add usage tracking
2019-09-11 04:20:34 +10:00
Mike Angell
1f90a37b63
Merge branch 'master' into styling-fixes-1
2019-09-04 14:26:27 +10:00
Mike Angell
604d899496
Render tag styling fixes
2019-08-31 22:48:25 +10:00
Mike Angell
799da202df
Apply simple rubocop fixes
2019-08-31 21:58:33 +10:00
Mike Angell
dafbb4ae90
Remove hasnling false scopes
2019-08-31 20:03:54 +10:00
Ashwin Maroli
8750b4b006
Reduce allocations from Liquid::Context.new
2019-08-30 09:01:47 +05:30
Samuel
9672ed5285
Add a new {% render %} tag
...
Example:
```
// the_count.liquid
{{ number }}! Ah ah ah.
// my_template.liquid
{% for number in range (1..3) %}
{% render "the_count", number: number %}
{% endfor %}
Output:
1! Ah ah ah.
2! Ah ah ah.
3! Ah ah ah.
```
The `render` tag is a more strict version of the `include` tag. It is
designed to isolate itself from the parent rendering context both by
creating a new scope (which does not inherit the parent scope) and by
only inheriting "static" registers.
Static registers are those that do not hold mutable state which could
affect rendering. This again helps `render`ed templates remain entirely
separate from their calling context.
Unlike `include`, `render` does not permit specifying the target
template using a variable, only a string literal. For example, this
means that `{% render my_dynamic_template %}` is invalid syntax. This
will make it possible to statically analyze the dependencies between
templates without making Turing angry.
Note that the `static_environment` of a rendered template is inherited, unlike
the scope and regular environment. This environment is immutable from within the
template.
An alternate syntax, which mimics the `{% include ... for %}` tag is
currently in design discussion.
2019-08-29 16:32:05 -04:00
Samuel
d338ccb9a6
Add isolated subcontexts
...
An isolated subcontext inherits the environment, filters,
and static registers of its supercontext, but with a fresh
(isolated) scope.
This will pave the way for adding the `render` tag, which renders
templates in such a subcontext.
2019-08-29 10:27:15 -04:00
Mike Angell
2324564743
Remove lazy load stacks
...
Remove lazy load stacks and instead only create a new scope when a tag is known to need one
2019-08-29 09:09:32 +10:00
Mike Angell
7bae55dd39
Bugfix for new Liquid tag
2019-08-28 23:39:19 +10:00
Tobias Lütke
6eab595fae
Merge pull request #1086 from Shopify/liquid-tag
...
Add {% liquid %} and {% echo %} tags
2019-08-27 15:10:20 -04:00
Justin Li
831355dfbd
Merge pull request #1117 from ashmaroli/reduce-allocations-template-lookup-class
...
Reduce allocations while registering Liquid tags
2019-08-07 16:37:39 -04:00
Ashwin Maroli
00702d8e63
Use Object.const_get directly
2019-08-07 11:44:53 +05:30
Justin Li
197c058208
Merge pull request #1099 from ashmaroli/stash-types-private-constant
...
Use a private constant to stash token-types
2019-08-06 17:56:56 -04:00
Ashwin Maroli
c2c1497ca8
Reduce allocations while registering Liquid tags
2019-07-22 20:42:37 +05:30
Ashwin Maroli
d19967a79d
Reduce string allocations from truncate filters
2019-07-22 17:35:45 +05:30
Florian Weingarten
248c54a386
Merge pull request #1091 from Shopify/rendering-with-less-garbage
...
Rendering with less garbage
2019-07-19 15:53:22 +01:00
Ashwin Maroli
2c42447659
Rename constant to SINGLE_TOKEN_EXPRESSION_TYPES
2019-05-17 23:30:24 +05:30
Ashwin Maroli
9ef6f9b642
Freeze mutable object assigned to constant
2019-04-29 23:50:49 +05:30
Ashwin Maroli
4684478e94
Use a private constant to stash token-types
2019-04-29 23:45:45 +05:30
Florian Weingarten
9640e77805
render_to_output_buffer
2019-04-23 17:06:29 -04:00