قم بتشغيل برنامج نصي روبي على نظام التشغيل Windows

StackOverflow https://stackoverflow.com/questions/4260203

  •  27-09-2019
  •  | 
  •  

سؤال

ما عندي فكرة عن روبي :)

الأمر هو أنني بحاجة إلى طريقة لتحويل كل 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top