/ Refatoração de código Ruby [fechado] - ruby, refatoração

Refatoração de código Ruby [fechado] - rubi, refatoração

Eu tenho declarações semelhantes às vezes

    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

Como refatorar esse código? Talvez declaração dinâmica construir com passar algum hash para entrada. Eu sou novato em metaprogramação. Me dê conselhos, por favor

Respostas:

1 para resposta № 1

Bem, pode não ser exatamente o que você está procurando, mas diminui muito o código.

Além disso, eu removi os métodos key? (), Porque se a chave não existe, ela passa apenas nil, que em Ruby significa o mesmo que false para if.

Deixei com 2 se declarações por uma questão de clareza. :)

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