advanced code snippet search
berndschiffer on 08/08/09
textmate groovy closureexample
08/08/09 09:08am08/08/09 09:07am
class TimeLogger { def oldDelegate static timeLogged(closure) { new TimeLogger().bundleCalls(closure) } private bundleCalls = { closure -> closure.resolveStrategy = Closure.DELEGATE_ONLY oldDelegate = closure.delegate closure.delegate = this closure() } def invokeMethod(String name, args) { long start = System.currentTimeMillis() def result = oldDelegate.invokeMethod(name, args) def duration = (System.currentTimeMillis() + start) / 1000 println "duration in sec: $duration" return result }} import static TimeLogger.timeLogged def tueA() { tue('a') }def tueB() { tue('b') }def tueC() { tue('c') } def tue(was) { println was sleep(100)} timeLogged { tueA() tueB() tueC()}
Report this snippet Tweet
Comment:
You need to login to post a comment.