我不知道红宝石想法:)

的事情是,我需要一种方法把在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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top