Tenho uma aplicação rails e tenho uma entidade Ticket que tem pode ter um status de cada vez.
Esse ticket tem um ‘ciclo de vida’ e esse ciclo vai se completando na medida que os usuarios do sistema mudam seu status.
Os status do ticket são mudados na view dele através de um combobox, e cada vez que o status é alterado uma série de ‘eventos’ são disparados alterando o estado de outros objetos do sistema, enviando e-mails, etc…
Acontece que como a aplicação está crescendo estou com medo do spagethi que tá virando meu código.
Gostaria de susgestões de como gerenciar as mudanças de status e os eventos que são disparados quando elas mudam.
Quero separar esse comportamento todo em uma classe, de modo que depois fique mais fácil de testá-lo usando uma ferramenta de testes.
Toda opinião é bem-vinda!