package cuke4duke.internal.groovy; import cuke4duke.Scenario; import cuke4duke.internal.language.AbstractHook; import groovy.lang.Closure; import java.util.List; import java.util.Locale; public class GroovyHook extends AbstractHook { private final GroovyLanguage groovyLanguage; private final Closure body; public GroovyHook(List<String> tagExpressions, Closure body, GroovyLanguage groovyLanguage) { super(tagExpressions); this.groovyLanguage = groovyLanguage; this.body = body; } public void invoke(String location, Scenario scenario) throws Throwable { groovyLanguage.invokeClosure(body, new Object[]{scenario}, Locale.getDefault()); } }