erb2slim – Converter ERB em Slim

A conversão entre ERB e Slim parece ser uma dor por algum motivo. No entanto, eu encontrei html2haml e haml2slim e me perguntei por que não podemos simplesmente converter para Slim em um hit (2 se você incluir as joias;). Bem, aqui vai …

Em primeiro lugar, instale as seguintes joias:

gem install html2haml haml2slim --no-ri --no-rdoc

Em seguida, você pode executar o seguinte para converter ERB em Slim no local (isso cria um arquivo Slim e remove o arquivo ERB antigo):

find ./app/views -name '*.erb' | xargs -I file sh -c 
'html2haml --erb file | haml2slim > $(echo file | sed 's/erb/slim/') &&
rm file'

Análise rápida do que está acontecendo:

  • Encontre todos os arquivos erb no app/viewsdiretório (isto é feito sob medida para Rails mas pode ser usado em outro lugar

  • Pegue essa saída e passe-a linha por linha para o xargs ( leia sobre isso , é foda!). Estou usando o sinalizador aqui para me dar um nome de espaço reservado razoável para o nome do arquivo de .-Ifind

  • sh -c pega o comando entre aspas como uma string e o avalia

  • Lá, convertemos o filepara HAML, também prestando atenção às guias ERB ( )--erb

  • Nós tubo que em haml2slimque leva a nossa HAML e saídas / redireciona para o arquivo original, mas com uma nova extensão (estamos usando um subnível aqui e, em seguida, usar o comando para substituir o original com no nome do arquivo)$()sed.erb.slim

  • Finalmente, se funcionar, remova o original – você pode querer mudar isso se quiser manter o arquivo erb original por perto

Você pode pegar este comando e alias em seu .zshrcarquivo ou outro script de inicialização de shell.

Obrigado a:
haml2slim ,
html2haml
e http://www.22ideastreet.com/blog/2011/10/19/converting-erb-to-slim/ por me dar algumas idéias …