سؤال

أنا أكتب جوهرة روبي التي يمكن للمستخدمين تثبيت واستخدام أداة سطر الأوامر روبي للتفاعل مع الخدمة.يمكنك بدء وإيقاف الخدمة (سوف تفرخ قبالة عملية الطفل).

لقد فعلت الكثير من البحوث في أفضل الأشياء لاستخدامها لكتابة خدمة الشبكة ، مثل أورممق/إيفنتماشين وأحصل على كيفية إنشاء جوهرة روبي التي سيتم تثبيت ثنائي يمكنك استخدامها في سطر الأوامر ، ولكن أنا تكافح من أجل وضع بنية رمز جيد.

سوف تأخذ أداة سطر الأوامر الخاصة بي وسيطات مختلفة (سأستخدمها ترولوب) وسوف تستخدم فئات مختلفة للقيام بالأشياء ، واستخدام مختلف الأحجار الكريمة روبي الأخرى.

لست متأكدا من المكان الذي يجب أن أضع فيه ملفات الفصل ، وكيفية طلبها في الملف الثنائي الخاص بي حتى تكون المسارات صحيحة.

هل كانت مفيدة؟

المحلول

إلى حد كبير ، سوف روبيجيمس رعاية هذا بالنسبة لك.ستحتاج إلى تضمين الملف التنفيذي الخاص بك في files القائمة ، ووضعها في executables في جيمسيك الخاص بك.من الشائع وضع الملف القابل للتنفيذ في bin في الدليل الخاص بك ، على سبيل المثال.:

$ ls
bin/   myapp.gemspec  lib/    Rakefile
$ ls bin
bin/myapp

سوف جيمسيك الخاص بك ثم تبدو وكأنها:

Gem::Specification.new do |s|
  s.name = 'myapp'

  # whatever else is in your gemspec

  s.files = ["bin/myapp","lib/myapp.rb"]  # or whatever other files you want
  s.executables = ["bin/todo"] 
end

في هذه المرحلة ، عندما يقوم المستخدمون بتثبيت تطبيقك عبر روبيجيمز, myapp سيكون في طريقهم ، و lib سيكون في لوادباث التطبيق الخاص بك ، لذلك يمكن للتنفيذ الخاص بك ببساطة تبدأ مع:

#!/usr/bin/env ruby

require 'myapp'
# whatever other requires

المشكلة الوحيدة في هذا هو أنه أثناء التطوير ، لا يمكنك القيام بذلك فقط bin/myapp ويكون تشغيل التطبيق الخاص بك.بعض المطورين يتلاعبون بمسار التحميل عبر $: أو $LOAD_PATH, ، لكن هذا يعتبر شكلا سيئا.

إذا كنت تستخدم بوندلر ، فمن الأسهل تشغيل تطبيقك محليا باستخدام bundle exec, ، على سبيل المثال. bundle exec bin/myapp.يمكنك استخدام بالتناوب RUBYLIB متغير البيئة ، على سبيل المثال. RUBYLIB=lib bin/myapp, ، والتي سوف تضع lib في مسار التحميل.

نصائح أخرى

يمكنك إنشاء هيكل مشروع جوهرة مع bunder .

لفترة وجيزة:

تثبيت bunder giveacodicetagpre.

استخدم BUNDLER لتوليد مشروع GEM giveacodicetagpre.

إضافة ملف قابل للتنفيذ giveacodicetagpre.

تثبيت جوهرك giveacodicetagpre.

قم بتشغيل البرنامج النصي الخاص بك giveacodicetagpre.

مشاركة فائدة الخاص بك على rubygems.org giveacodicetagpre.

المزيد من المستندات على موقع الويب

نظرا لأن جميع الأحجار الكريمة مفتوحة المصدر بطبيعتها ، يمكنك دائما إلقاء نظرة على بعض من أفضلها للحصول على أمثلة.باستخدام منشئ الأحجار الكريمة مثل jeweler أو hoe سوف تقوم أيضا بإعداد مع بعض الهيكل الأساسي من الناحية التنظيمية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top