/ / Refaktoryzacja kodu ruby ​​[zamknięty] - rubin, refaktoryzacja

Refaktoryzacja kodu rubowego [zamknięty] - rubin, refaktoryzacja

Mam n razy podobne stwierdzenia

    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

Jak refaktoryzować ten kod? Możliwe, że instrukcja dynamiczna zbudowana jest z przekazaniem pewnego skrótu do wprowadzenia. Jestem nowicjuszem w metaprogramowaniu, proszę o radę

Odpowiedzi:

1 dla odpowiedzi № 1

Cóż, może to nie być dokładnie to, czego szukasz, ale bardzo skraca kod.

Ponadto usunąłem te kluczowe metody? (), Ponieważ jeśli klucz nie istnieje, po prostu przekazuje zero, co w Ruby oznacza to samo co false dla instrukcji if.

Zostawiłem to z 2 wyrażeniami if, dla zachowania przejrzystości. :)

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