Вопрос

Я понятия не имею о Ruby :)

Дело в том, что мне нужен способ превратить весь CSS в электронном письме HTML во встроенные стили.И нет лучшего способа сделать это, чем использовать Предварительная рассылка от Алекса Дунае.

Но я хочу запустить его в Windows.Моя цель - иметь возможность запускать скрипт с C # и извлекать файл, созданный ruby-скриптом на C #, и использовать HTML для электронного письма.

В любом случае, запуск ruby-скрипта - это самая сложная часть для меня.Я скачал и установил Установщик 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.

Попробуйте удалить Программу предварительной рассылки:

gem uninstall --force premailer

А затем попробуйте еще раз установить его:

gem install premailer

Примечание:Hpricot на самом деле написан на C, а не на Ruby, поэтому для его установки вам необходимо установить RubyInstaller DevKit.(Это может быть объяснением того, почему он не был установлен автоматически.)

Общий совет:если вы хотите взаимодействовать между CLI и Ruby, гораздо проще использовать реализацию IronRuby Ruby вместо YARV, которую, похоже, вы используете, потому что IronRuby фактически работает на CLI (точнее, DLR) и имеет стандартизированный API для вызова CLI-кода из Ruby и наоборот (и этот API полностью совместим с C # 4 dynamic).За исключением это частный случай, который не сработает, потому что, как я уже упоминал, Hpricot написан на C как расширение к YARV, поэтому он просто не будет работать с IronRuby.

Другие советы

Да, «Hpricot» отсутствует. Самый простой способ к вам, вероятно, использует RubyGems для установки:

gem install -r hpricot
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top