Pergunta

Eu não tenho ideia de Ruby :)

O problema é que preciso de uma maneira de transformar todos os CSs em um e-mail HTML em estilos embutidos. E não há melhor maneira de fazer isso do que usar Premiler de Alex Dunae.

Mas eu quero executá -lo no Windows. Meu objetivo é poder executar o script de C# e buscar o arquivo criado pelo script Ruby em C# e usar o HTML para o e-mail.

De qualquer forma, executar o script Ruby é a parte difícil para mim. Eu baixei e instalei o Instalador Ruby, e eu também baixei o pacote Premiler 1.6.2.

Eu tento executá -lo fazendo isso:

C:\Ruby192\bin>ruby.exe C:\Workspace\Premailer\bin\premailer C:\Workspace\index.htm > C:\Workspace\index2.htm

E o que me diz é o seguinte:

C:\Ruby192\bin>ruby.exe C:\Workspace\Premailer\bin\premailer C:\Workspace\index.htm > C:\Workspace\index2.htm
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- hpricot (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from C:/Workspace/Premailer/lib/premailer.rb:4:in `<top (required)>'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from C:/Workspace/Premailer/bin/premailer:5:in `<main>'

Eu provavelmente preciso de algumas dependências ou o quê?

Foi útil?

Solução

Você está perdendo a biblioteca HPRICOT, que é um analisador HTML.

No entanto, não tenho certeza Por quê está faltando. Ele está devidamente listado como uma dependência na especificação do pacote do PremAiler e deveria ter sido instalado automaticamente quando você instalou o PremAiler (a menos que você o desativasse explicitamente com o --ignore-dependencies bandeira).

Além disso, o binário premAiler deveria ter sido instalado em C:\Ruby192\bin, não C:\Workspace\Premailer\bin.

Tente desinstalar o pré -corredor:

gem uninstall --force premailer

E então tente novamente instalá -lo:

gem install premailer

NOTA: O HPRICOT é realmente escrito em C, não em Ruby, por assimnte, para instalá -lo, você precisa instalar o RubyInstaller Devkit. (Isso pode ser uma explicação por que não foi instalada automaticamente.)

Uma dica geral: se você deseja interoperar entre a CLI e o rubi, é muito mais fácil usar a implementação do Ruby IronRuby em vez de Yarv, o que parece que você está usando, porque o IronRuby realmente corre na CLI (com mais precisão o DLR) e tem uma API padronizada para ligar para o código da CLI de Ruby e vice -versa (e que a API é totalmente compatível com C# 4's dynamic). Exceto em isto Caso particular que não funciona porque, como mencionei, o HPRICOT está escrito em C, como uma extensão para Yarv, para que simplesmente não funcione com a IronRuby.

Outras dicas

Sim, "hpricot" está faltando. A maneira mais fácil de você provavelmente está usando Rubygems para instalar:

gem install -r hpricot
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top