Você já teve que trabalhar em um template de email HTML particularmente feio no Rails? Sim, e é como se a sigla DRY nunca tivesse sido inventada. Sério, se você tem uma string de CSS sendo aplicada 10 vezes e está cortando e colando toda a definição da tag 10 vezes, então você está acidentalmente condenando 10 gatinhos a um fim infeliz
Aqui está um snippet anterior de um modelo de e-mail que tive que atualizar (está no Haml) …
%tr
%td.content-head{style: "Really? I'm not going to even replicate this CSS"}
%h1{style: "yeah. there's a lot of CSS here"}
And now the content
%tr
%td.main-content-grey{style: "You get the idea. This one get's repeated a N times."}
%p{style: "And this tag get's repeated N+1 times"}
Tentar encontrar um texto específico e atualizar o layout era, na melhor das hipóteses, irritante. Não é um grande negócio, mas mesmo assim é irritante. Mas isso pode ser melhor. Em vez de repetir as mesmas strings, use o poder das Variáveis para simplificar o HTML do seu e-mail.
- content_head = "Really? I'm not going to even replicate this CSS"
- h1 = "yeah. there's a lot of CSS here"
- main_content_grey = "You get the idea. This one get's repeated a N times."
- paragraph = "And this tag get's repeated N+1 times"
%tr
%td.content-head{style: content_head}
%h1{style: h1}
And now the content
%tr
%td.main-content-grey{style: main_content_grey}
%p{style: paragraph}
Meu caso real envolveu 7 variáveis extraídas, uma das quais foi uma declaração de família de fonte comum que foi usada em cada uma das definições de estilo, totalmente em torno de 20 substituições de string de definição de estilo. Agora eu era capaz de ler facilmente o HTML e entender o que estava sendo usado onde e fazer atualizações globais nos estilos com muita facilidade. Não demorou para introduzir uma extensão de geração de e-mail extravagante para simplificar minha geração de HTML de e-mail, apenas um pouco de Ruby e alguns minutos de refatoração.