Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Assignment Blocks with Set tags #698

Merged
merged 8 commits into from
Jul 26, 2021
Merged

Support Assignment Blocks with Set tags #698

merged 8 commits into from
Jul 26, 2021

Conversation

jasmith-hs
Copy link
Contributor

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

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 on lines +126 to +136
@Test
@Ignore
public void itSetsBlock() {
// not implemented yet
}

@Test
@Ignore
public void itSetsBlockWithFilter() {
// not implemented yet
}
Copy link
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

Copy link
Contributor

@jmaroeder jmaroeder left a comment

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!

src/main/java/com/hubspot/jinjava/lib/tag/SetTag.java Outdated Show resolved Hide resolved
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