Applied patch from Jan Limpens 'ReflectionBasedDictionaryAdapter needs to check if...
[castle.git] / Tools / NVelocity / test / templates / interpolation.vm
blobd757e88150d37d43920c9f9558d351358e91860c
1 #*
3 @test interpolation.vm
5 This template is used for Velocity regression testing.
6 If you alter this template make sure you change the
7 corresponding comparison file so that the regression 
8 test doesn't fail incorrectly.
12 Start with simple string interpolation :
14 #set($name = "jason")
15 $provider.concat("it will cost you $10.00", "")
17 #set($image = "dog")
18 $provider.concat("${image}.jpg", "")
20 #set($foo-bar = "foobar")
21 $provider.concat("${foo-bar}.jpg", "")
23 #set($foo_bar = "foobar")
24 $provider.concat("${foo_bar}.jpg", "")
26 #set($one = 1)
27 #set($two = 2)
28 #set($three = 3)
29 $provider.concat("${one}${two}${three}", "")
30 $provider.concat("$one $two $three", "")
32 How about a directive?  Sure :
34 #set($arr = ["a","b","c"])
35 #set($foo = "#foreach($a in $arr) >$a< #end")
37 $foo 
39 For our next trick, lets interpolate a.... VelociMacro!
41 #macro( interpfoo )
42   Hi, I'm a VM!
43 #end
45 #set($ivm = "#interpfoo()")
47 $ivm
49 And now, for something completely different :
51 #set($code = "#if(false) True #else False #end")
53 $code
55 Now, non interpolated stringlits :
57 #set($a = "$code")
58 #set($b = '$code')
59 #set($c = '$!$\!code')
65 -- end --