You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Sandro Martini (JIRA)" <ji...@apache.org> on 2014/10/29 10:35:33 UTC

[jira] [Commented] (PIVOT-960) Implement simple macro system in JSONSerializer

    [ https://issues.apache.org/jira/browse/PIVOT-960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14188174#comment-14188174 ] 

Sandro Martini commented on PIVOT-960:
--------------------------------------

Hi Roger, to me the patch looks good ... only some questions:
- without variables inside json files, macros will be triggered the same ?
- in case something goes wrong during reading variables/processing it, how exceptions are handled ?
- variable referencing, will it be possible to use a litle simplified form, like $TWO_HUNDRED instead of $(TWO_HUNDRED) ? Many others does something similar, for example:
http://groovy.codehaus.org/Strings+and+GString
http://docs.scala-lang.org/overviews/core/string-interpolation.html
So the rule here (as in Scala) could be: $variablename in standard cases, and ${variablename etc} for more complex cases (not handled here, at least not for now), but I understand that {} chars are not the best inside a json file ...

Anyway, go with the commit (and the little change if it's ok for you :-) ) ...


> Implement simple macro system in JSONSerializer
> -----------------------------------------------
>
>                 Key: PIVOT-960
>                 URL: https://issues.apache.org/jira/browse/PIVOT-960
>             Project: Pivot
>          Issue Type: Improvement
>          Components: core-json
>    Affects Versions: 2.0.4
>         Environment: All
>            Reporter: Roger Whitcomb
>            Assignee: Roger Whitcomb
>            Priority: Minor
>             Fix For: 2.1
>
>         Attachments: 960.patch
>
>
> It occurred to me since we are using JSON style sheets to style our application, and it is getting quite big, that a macro system (maybe similar to C/C++ with #define or something similar) would be useful, especially for repeated colors, and other constants (like padding values, fonts, etc.)  This would enable using custom values consistently while avoiding inconsistencies due to typos or changes introduced one place and not others.
> I was thinking of a simple
> #define NAME value
> as in C/C++, and then using $(NAME) as the substitution token.  This is easily implemented in JSONSerializer.
> I'm open to suggestions for the syntax, but I believe the feature will be very useful, especially for the JSON stylesheet.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)