[
https://issues.apache.org/jira/browse/VELOCITY-680?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666257#action_12666257
]
Nathan Bubna commented on VELOCITY-680:
---------------------------------------
What happens if someone tries something like:
#macro( foo )#local( $map.foo = 'bar' )$map.foo#end
#set( $map = { 'foo': 'woogie' } )
#foo() $map.foo
What would we want/expect to happen? Right now, i think this would print "bar
bar". Is that ok? Should it throw an error? Log a warning? I know complex
references in the LHS of #local probably just fall into the "don't do that"
category, but since it is something that i think worked with the old #local,
it's worth considering.
> RFC: New #local directive that behaves like #set but puts things into local
> context in macro rendering
> ------------------------------------------------------------------------------------------------------
>
> Key: VELOCITY-680
> URL: https://issues.apache.org/jira/browse/VELOCITY-680
> Project: Velocity
> Issue Type: New Feature
> Affects Versions: 1.7
> Reporter: Jarkko Viinamäki
> Attachments: velocity-local-directive.patch
>
>
> It would be very useful to be able to set variables that are in local macro
> scope. That is, they do not overwrite "global" variables and are thrown away
> after macro rendering. This would allow people to build macro libraries that
> do not clash so easily with each other.
> There is some implementation of a "LocalDirective" in
> experimental/localdirective but I didn't quite get it and it doesn't follow
> the same syntax as #set. I used a few minutes to hack together this
> alternative implementation which behaves exactly like #set but it puts things
> in local context only.
> There's only one test case since this is Request-for-Comments type of patch.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]