मैं वर्तमान में पायथन में लिपि करता हूं लेकिन मैं कई कारणों से रुबी को आजमाने की कोशिश करता हूं। मैंने बहुत सारे नमूना कोड को देखा है और पिछले हफ्ते में बहुत सारे दस्तावेज पढ़े हैं। मेरी चिंता का एक बिंदु रूबी में उचित कमांड लाइन तर्क पार्सिंग पुस्तकालयों की कमी है। रूबी विशेषज्ञ, मुझ पर पागल मत हो - शायद मुझे नहीं पता। यही कारण है कि मैं यहाँ हूँ।रूबी ऑप्टपरसे सीमा
पायथन में, मुझे argparse
का उपयोग करने के लिए उपयोग किया गया था, जो मेरी राय में बिल्कुल सही है (शायद मेरी ज़रूरतों के लिए)। दुर्भाग्य से, OptionParser
argparse
करता है कि लचीलापन और सुविधाओं के लिए अनुमति नहीं देता है।
मैं विशेष रूप से अब के लिए निम्नलिखित की कमी से देख रहा हूँ:
मैं परस्पर अनन्य विकल्प सूचियों कैसे करूं? उदाहरण के लिए
test
नामक प्रोग्राम के लिए एक बहुत ही छोटी विकल्प सूची।# implement a ---------------------------------------------- opts.on("-a", "--alpha", "implement alpha") do #... end
और इतने पर:
usage: test [-h] [-a | -b | -c] [-d] [filename]
मैं जैसे कुछ कोड लिख सकते हैं। लेकिन फिर, मेरे पास
a
,b
औरc
पारस्परिक रूप से अनन्य बनाने का कोई तरीका नहीं है जब तक कि मैं उन पर क्रमपरिवर्तन कोड नहीं करता और कुछ त्रुटि प्रबंधन करता हूं। उदाहरण के लिएtest -ab #should through an error
अजगर में, मैं एक बहुत ही आसान तरीके से ऐसा कर सकता है:
# create an command line argument parser object cmd_line_parser = argparse.ArgumentParser() # create a mutually exclusive group cmd_line_group = cmd_line_parser.add_mutually_exclusive_group()
दूसरे, मैं
-a
के साथ युग्मन-d
का कोई रास्ता नहीं है जब तक कि मैं विशेष रूप से इस परिवर्तन के लिए कोड लिखने । यह पागल है।मुझे
[OPTION]
खुद को सूचीबद्ध करना है; मुझे यह जानने का कोई तरीका नहीं है कि मैं गलत या सही हूं, जब तक कि मैं सभी संभावित इनपुट क्रमिकताओं के लिए ब्लैकबॉक्स परीक्षण नहीं करता और उन्हें ब्लैकबॉक्स सूची में मैप करता हूं।इसके अलावा, विशेष कोड का उपयोग करके अनिवार्य तर्कों को फिर से संभालने की आवश्यकता है।
वहाँ रूबी में optparse
या अन्य पुस्तकालयों का उपयोग कर इन बाधाओं से निपटने का एक आसान है?
वाह। वह पागल है। महाकाव्य। अवधि। मैं इतने लंबे समय से क्या कर रहा हूं।यह बहुत अच्छा है। बहुत बहुत धन्यवाद। – p0lAris