Skip to content

Support Assignment Blocks with Set tags#698

Merged
jasmith-hs merged 8 commits into
masterfrom
set-blocks
Jul 26, 2021
Merged

Support Assignment Blocks with Set tags#698
jasmith-hs merged 8 commits into
masterfrom
set-blocks

Conversation

@jasmith-hs

@jasmith-hs jasmith-hs commented Jun 25, 2021

Copy link
Copy Markdown
Contributor

For #693 and #422
Jinja 2.8 adds support for block set assignments (https://jinja.palletsprojects.com/en/3.0.x/templates/#block-assignments)

Add support for set tags with the notation:

{% set foo %}
A value of {{ 1 + 1 }}
{% endset %}

foo = 'A value of 2'

Additionally, Jinja 2.10 adds support for filters in the assignments:

{% set foo | upper %}
hello
{% endset %}

foo = 'HELLO'.


The FlexibleTag interface adds a way to determine Node-based eligibility for requiring an EndTag rather than Tag-based eligibility through the hasEndTag(TagToken tagToken) method. Since this method takes a TagToken as the parameter, whether or not the tag will have a corresponding endtag depends on what is in the TagToken. For SetTag, it depends on whether there is an = in the helpers.

I'm opening this PR separately from the logic to handle this change with Eager Execution because those changes are much larger.

Comment thread src/main/java/com/hubspot/jinjava/lib/tag/SetTag.java
Comment on lines +126 to +136
@Test
@Ignore
public void itSetsBlock() {
// not implemented yet
}

@Test
@Ignore
public void itSetsBlockWithFilter() {
// not implemented yet
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is complex to properly support this with eager execution so it's in a separate PR #699

@jasmith-hs jasmith-hs requested review from Joeoh and jmaroeder July 23, 2021 18:09

@jmaroeder jmaroeder left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, one question for my understanding!

Comment thread src/main/java/com/hubspot/jinjava/lib/tag/SetTag.java Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants