El siguiente ejemplo del uso del método sendMail proporcionado por el plugin Grails electrónico aparece en this book.cierre maravilloso Parámetros
sendMail {
to "[email protected]"
subject "Registration Complete"
body view:"/foo/bar", model:[user:new User()]
}
entiendo que el código dentro de {} es un cierre que se pasa a Sendmail como un parámetro. También entiendo que to
, subject
y body
son llamadas a métodos.
Estoy tratando de averiguar cuál es el código que implementa el método sendMail se vería así, y mi mejor conjetura es algo como esto:
MailService {
String subject
String recipient
String view
def model
sendMail(closure) {
closure.call()
// Code to send the mail now that all the
// various properties have been set
}
to(recipient) {
this.recipient = recipient
}
subject(subject) {
this.subject = subject;
}
body(view, model) {
this.view = view
this.model = model
}
}
¿Es esto razonable, o me estoy perdiendo algo? En particular, son los métodos invokedwithin el cierre (to
, subject
, body
), necesariamente miembros de la misma clase que sendMail
?
Gracias, Don