реализация функций - PullRequest
       6

реализация функций

0 голосов
/ 26 декабря 2018

Я реализовал несколько отличных методов для отправки различных уведомлений, но код нарушает концепцию функций.Поэтому я хочу переписать / объединить все методы groovy в один метод, чтобы я мог вызывать этот метод везде, где мне нужно.

Не имеет значения успех или неудача, и мне нужно передать сообщение в качестве параметра.

static void sendSuccessApplicationNotification(p1,p2,p3,p4) {
    def x = Notify(this)
    x.triggerBuild("SUCCESSFUL, application ${p1}:${p2} started properly", "${p3}")
    x.triggerBuild("SUCCESSFUL, application ${p1}:${p2} started properly", "${p4")
}

Наконец, вышеприведенное выше должно быть преобразовано в один метод. Проверено много статей, не получая точного примера.

1 Ответ

0 голосов
/ 26 декабря 2018

вы можете использовать шаблонный движок в вашей обобщенной функции:

import groovy.text.SimpleTemplateEngine

void triggerBuild(a,b){
    println "${a} >>>> ${b}"
}

void sendNotification(code, Map parms, List nodes) {
    def templates = [
        'appY': 'SUCCESSFUL, application ${app}:${ver} started properly',
        'appN': 'FAILED, application ${app}:${ver} failed to start properly',
        'depY': 'SUCCESSFUL deployment of ${app}:${ver} to ${node}<br>Executed by ${user}',
        'depN': 'FAILED deployment of ${app}:${ver} to ${node}<br>Executed by ${user}'
    ]
    def template = templates[code]
    assert template
    def message = new SimpleTemplateEngine().createTemplate(template).make(parms).toString()
    nodes.each{node->
        triggerBuild(message, node)
    }
}

sendNotification('appY',[app:'myapp', ver:'v123'],['n1','n2'])

приведенный выше код выдаст:

SUCCESSFUL, application myapp:v123 started properly >>>> n1
SUCCESSFUL, application myapp:v123 started properly >>>> n2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...