Pregunta

No tengo idea sobre Ruby:)

La cosa es, necesito una manera de convertir todos los CSS en un correo electrónico HTML en los estilos en línea. Y no hay mejor manera de hacer eso, que el uso de Alex Dunae Premailer .

Pero quiero ejecutarlo en Windows. Mi objetivo es ser capaz de ejecutar la secuencia de comandos de C #, y buscar el archivo creado por el guión de rubí en C # y utilizar el código HTML para el correo electrónico.

En cualquier caso, la ejecución del script rubí es la parte más difícil para mí. He descargado e instalado el Rubí instalador , y también he descargado el paquete de Premailer 1.6.2.

Trato de correr que hacer esto:

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

Y lo que me dice es lo siguiente:

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>'

probablemente necesito dependencias, o qué?

¿Fue útil?

Solución

se echa en falta la biblioteca hpricot, que es un analizador de HTML.

Sin embargo, no estoy seguro de ¿Por qué que se encuentra. Se enumera correctamente como una dependencia en la especificación del paquete de Premailer y que debería haber sido instalado automáticamente cuando instaló Premailer (a menos que desactivara explícitamente con la bandera --ignore-dependencies).

Además, el binario Premailer debería haber sido instalado en C:\Ruby192\bin, no C:\Workspace\Premailer\bin.

Trate de desinstalar Premailer:

gem uninstall --force premailer

Y a continuación, inténtelo de nuevo para instalarlo:

gem install premailer

Nota: hpricot es en realidad escrito en C, no en Ruby, por lo que instalarlo, es necesario tener instalado el RubyInstaller DevKit. (Esto podría ser una explicación de por qué no se instalan automáticamente.)

Un consejo general: si desea interoperar entre la CLI y Ruby, es mucho más fácil de utilizar la implementación IronRuby Rubí en lugar de YARV, que parece que está utilizando, porque IronRuby funciona realmente en el CLI (más precisamente el DLR) y tiene una API estándar para llamar código CLI desde Ruby y viceversa (API y que es totalmente compatible con C # dynamic de 4). Excepto en este caso particular de que no va a funcionar porque, como he mencionado, hpricot está escrito en C, como una extensión de YARV, por lo que simplemente no funcionará con IronRuby.

Otros consejos

Sí, "hpricot" no se encuentra. La forma más fácil de que probablemente está usando rubygems instalar:

gem install -r hpricot
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top