| #* |
| |
| @test interpolation.vm |
| |
| This template is used for Velocity regression testing. |
| If you alter this template make sure you change the |
| corresponding comparison file so that the regression |
| test doesn't fail incorrectly. |
| |
| *# |
| |
| Start with simple string interpolation : |
| |
| #set $name = "jason" |
| $provider.concat("it will cost you $10.00", "") |
| |
| #set $image = "dog" |
| $provider.concat("${image}.jpg", "") |
| |
| #set $foo-bar = "foobar" |
| $provider.concat("${foo-bar}.jpg", "") |
| |
| #set $foo_bar = "foobar" |
| $provider.concat("${foo_bar}.jpg", "") |
| |
| #set $one = 1 |
| #set $two = 2 |
| #set $three = 3 |
| $provider.concat("${one}${two}${three}", "") |
| $provider.concat("$one $two $three", "") |
| |
| How about a directive? Sure : |
| |
| #set $arr = ["a","b","c"] |
| #set $foo = "#foreach($a in $arr) >$a< #end" |
| |
| $foo |
| |
| For our next trick, lets interpolate a.... VelociMacro! |
| |
| #macro( interpfoo ) |
| Hi, I'm a VM! |
| #end |
| |
| #set $ivm = "#interpfoo()" |
| |
| $ivm |
| |
| And now, for something completely different : |
| |
| #set $code = "#if(false) True #else False #end" |
| |
| $code |
| |
| Now, non interpolated stringlits : |
| |
| #set($a = "$code") |
| #set($b = '$code') |
| #set($c = '$!$\!code') |
| |
| $a |
| $b |
| $c |
| |
| -- end -- |