/ / Refactoring del codice Ruby [chiuso] - ruby, refactoring

Refactoring del codice ruby ​​[chiuso] - ruby, refactoring

Ho dichiarazioni simili a n volte

    if trigger_data.tt_closed
unless trouble_ticket.changes.key?(:status)
@run = 0
break
end
unless trouble_ticket.changes[:status][1] == "Closed"
@run = 0
break
end
end

if trigger_data.tt_assignee
unless trouble_ticket.changes.key?(:assigned_to)
@run = 0
break
end
unless trouble_ticket.changes[:assigned_to][1] == trigger_data.tt_assignee
@run
break
end
end

Come refactoring quel codice? Forse build di istruzioni dinamiche con passaggio di hash da inserire. Sono un principiante in metaprogrammazione, dammi consigli per favore

risposte:

1 per risposta № 1

Beh, potrebbe non essere esattamente quello che stai cercando, ma riduce molto il codice.

Inoltre, ho rimosso quei metodi chiave? (), Perché se la chiave non esiste, passa semplicemente nil che in Ruby significa la stessa cosa di false per if.

L'ho lasciato con 2 se le dichiarazioni per motivi di chiarezza. :)

changes = trouble_ticker.changes
if trigger_data.tt_closed && changes[:status][1] != "Closed"
@run = 0
break
end

if t = trigger_data.tt_assignee && changes[:assigned_to][1] != t)
@run = 0
break
end