2016-06-20 6 views
0

я скрипт в текстовом файле application.txtоценить сценарий для объекта

application { 
    title "Template application" 
    settings {} 
} 

я оценил его как этот

def application = new MainForm() 
Binding binding = new Binding() 
binding.setVariable("application", application) 

GroovyShell shell = new GroovyShell(binding) 
    evaluate(new File("application.txt")) 

где мой MainForm объект содержит код, как этот

class MainForm { 

    def call(Closure cl) { 
     cl.delegate = this 
     cl() 
    } 

    def methodMissing(String name, args) { 
     if (name == "title") { 
      .... 
     } else { 
      .... 
     } 
    } 
} 

Но я решил избавиться от необъективности application {} faci Лити внутри текстового файла и оставить просто

title "Template application" 
settings {} 

Код я больше не работаю, выбрасывая меня missing method исключения.

def application = new MainForm() 
Binding binding = new Binding() 
binding.setVariable("application", application) 

GroovyShell shell = new GroovyShell(binding) 
    evaluate(new File("application.txt")) 

Как мне изменить этот код, чтобы мой новый подход работал? (В основном я хочу, чтобы оценить код, как это было в экземпляре application)

ответ