قم بتشغيل برنامج نصي روبي على نظام التشغيل Windows
سؤال
ما عندي فكرة عن روبي :)
الأمر هو أنني بحاجة إلى طريقة لتحويل كل CSS في بريد إلكتروني بتنسيق HTML إلى أنماط مضمنة.وليس هناك طريقة أفضل للقيام بذلك، من الاستخدام العرض الأول لـ Alex Dunae.
لكني أريد تشغيله على نظام Windows.هدفي هو أن أتمكن من تشغيل البرنامج النصي من C#، وجلب الملف الذي تم إنشاؤه بواسطة البرنامج النصي روبي في C# واستخدام HTML للبريد الإلكتروني.
على أية حال، تشغيل البرنامج النصي روبي هو الجزء الصعب بالنسبة لي.لقد قمت بتحميل وتثبيت روبي المثبت, ، وقمت أيضًا بتنزيل حزمة 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 يعمل فعليًا على واجهة سطر الأوامر (بشكل أكثر دقة DLR) وله واجهة برمجة تطبيقات موحدة للاتصال برمز CLI من Ruby والعكس (وواجهة برمجة التطبيقات هذه متوافقة تمامًا مع C# 4's dynamic
).باستثناء هذا حالة معينة لن تعمل لأنه، كما ذكرت، Hpricot مكتوب بلغة C كامتداد لـ YARV، لذا فهو ببساطة لن يعمل مع IronRuby.
نصائح أخرى
نعم ، "Hpricot" مفقود. أسهل طريقة لك هي استخدام Rubygems لتثبيت:
gem install -r hpricot