Question: I want to read a String from database and replace the placeholder by converting it to a GString. Can I do this with Eval? Any other ideas?

```
String stringFromDatabase = 'Hello ${name}!'
String name = 'world'

assert 'Hello world!'== TODO

```

Answer: 
You can use the Template framework in Groovy, so doing this solves your problem:

```
String stringFromDatabase = 'Hello ${name}!'
String name = 'world'

def engine = new groovy.text.SimpleTemplateEngine()
assert 'Hello world!'== engine.createTemplate(stringFromDatabase).make([name:name]).toString()

```

You can find the docs here: <http://docs.groovy-lang.org/latest/html/documentation/template-engines.html#_introduction>

The GString class is abstract, and the GStringImpl implementation of the abstract class works on the arrays of strings, that it gets from the parsing phase along with values.
You should be using double quoted String literal if you want to use place holders.

The following should work:

```
String name = 'world'
String stringFromDatabase = "Hello ${name}!" //use double quotes

assert 'Hello world!' == stringFromDatabase

```

See the [official Groovy documentation about Strings](http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings) to see other ways you can make this work.