groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Keith Suderman <suder...@anc.org>
Subject Re: How create a custom string literal type
Date Sun, 03 May 2015 19:00:57 GMT
Or, if you don't know all the variable names that might be used you can use propertyMissing

this.metaClass.propertyMissing = { return '$' + it }
def done = '"Task complete"'
def source = """
mv file_name $HOME
echo $done
"""

On May 3, 2015, at 2:07 PM, Guillaume Laforge <glaforge@gmail.com> wrote:

> A simple trick could be to have a $HOME string variable in your script whose value is...
just... $HOME :-)
> 
> def $HOME = '$HOME'
> 
> def done = "task complete"
> 
> def script = '''
> mv file_name $HOME
> echo $done
> '''
> 
> 2015-05-03 19:53 GMT+02:00 Paolo Di Tommaso <paolo.ditommaso@gmail.com>:
> I think that AST cannot work here because the string has been already parsed. 
> 
> 
> p
> 
> 
> On Sun, May 3, 2015 at 7:30 PM, Dinko Srko─Ź <dinko.srkoc@gmail.com> wrote:
> On 3 May 2015 at 18:01, Paolo Di Tommaso <paolo.ditommaso@gmail.com> wrote:
> > Hi,
> >
> > I would need to implement a string literal in which the dollar char is not
> > interpreted as variable placeholder, indeed to use a custom character to
> > interpolate variables.
> >
> > For example I would like define a string like this:
> >
> >
> > def DONE = 'Task completed'
> >
> >
> > def script = /%
> >
> > mv file_name $HOME
> > echo %DONE
> > /%
> >
> >
> >
> > In which the $HOME string is ignored while  %DONE is interpolated as a
> > groovy variable.
> >
> > Is there any way to do that ?
> 
> Probably not ... although, I imagine it might be possible using AST
> transformations.
> 
> On a related note, it would be interesting to have the ability to use
> a different GString implementation, instead of GStringImpl.
> 
> Cheers,
> Dinko
> 
> >
> >
> > Cheers,
> > Paolo
> >
> >
> >
> 
> 
> 
> 
> -- 
> Guillaume Laforge
> Groovy Project Manager
> Product Ninja & Advocate at Restlet
> 
> Blog: http://glaforge.appspot.com/
> Social: @glaforge / Google+

------------------------------
Research Associate
Department of Computer Science
Vassar College
Poughkeepsie, NY



Mime
View raw message