काम करता है नीचे कोड की आवश्यकता होती है, लेकिन मैं मैन्युअल fetch
का उपयोग कर, जब मैं आवश्यक पैरामीटर के लिए देशी OptionParser sytax में आवश्यक तर्क का निर्माण करना चाहते आवश्यक तर्क के लिए तर्क त्रुटियों को ऊपर उठाने रहा हूँ:कैसे उत्पन्न करने के लिए OptionParser तर्क
# ocra script.rb -- --type=value
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("--type [TYPE]",String, [:gl, :time], "Select Exception file type (gl, time)") do |t|
options["type"] = t
end
opts.on("--company [TYPE]",String, [:jaxon, :doric], "Select Company (jaxon, doric)") do |t|
options["company"] = t
end
end.parse!
opts = {}
opts['type'] = options.fetch('type') do
raise ArgumentError,"no 'type' option specified as a parameter (gl or time)"
end
opts['company'] = options.fetch('company') do
raise ArgumentError,"no 'company' option specified as a parameter (doric or jaxon)"
end
मैं https://github.com/JEG2/highline नामक एक रूबी मणि का उपयोग करने के लिए बस गया है जिसमें इसका क्ली मेनू डीएसएल और आवश्यक पैराम है। – lukemh
अच्छा काम। मेरे एक सहयोगी ने एस्कॉर्ट नामक एक मणि भी लिखा जो सीएलआई ऐप्स के लिए आवश्यक पैरामीटर सेट कर सकता है: https://github.com/skorks/escort#required-arguments –