题
我不知道红宝石想法:)
的事情是,我需要一种方法把在HTML电子邮件的所有CSS成内嵌样式。而且也没有更好的办法来做到这一点,不是使用亚历克斯Dunae的Premailer 。
但我想在Windows上运行它。我的目标是能够运行从C#脚本,并获取由Ruby脚本在C#中创建的文件,并使用HTML的电子邮件。
总之,运行Ruby脚本对我来说是最困难的部分。我已经下载并安装了红宝石安装,并且我也下载了Premailer 1.6.2包。
我尝试运行它这样做:
C:\Ruby192\bin>ruby.exe C:\Workspace\Premailer\bin\premailer C:\Workspace\index.htm > C:\Workspace\index2.htm
和它告诉我是这样的:
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>'
我可能需要一些依赖,还是什么?
解决方案
您缺少角度来说,Hpricot库,它是一个HTML解析器。
不过,我不知道的为什么的它丢失了。它是正确列为Premailer的包装规格的依赖,它应该在安装Premailer(除非你明确地与--ignore-dependencies
标志禁用它)已经被自动安装。
此外,Premailer二进制应该已经安装在C:\Ruby192\bin
,不C:\Workspace\Premailer\bin
。
尝试卸载Premailer:
gem uninstall --force premailer
,然后再次尝试进行安装:
gem install premailer
请注意:角度来说,Hpricot实际上是用C写的,而不是在Ruby中,所以要安装它,您需要安装的RubyInstaller的devkit。 (这可能是为什么它没有自动安装的说明。)
一般提示:如果您想CLI和红宝石之间的互操作,它是非常容易使用的IronRuby Ruby实现的,而不是YARV,它似乎你正在使用,因为IronRuby的实际运行的CLI(更准确地说是DLR)和具有调用在Ruby CLI代码,反之亦然标准化的API(和API是用C#4的dynamic
)完全兼容。除了在此特定不会工作,因为,正如我所提到的,角度来说,Hpricot是用C,作为扩展到YARV情况下,所以它根本不会与IronRuby的工作。
其他提示
是, “角度来说,Hpricot” 缺失。给你最简单的方法是可能使用RubyGems的安装:
gem install -r hpricot