2009-11-05 9 views
165

रूबी कोड दस्तावेज करते समय कुछ कोड सम्मेलन हैं? उदाहरण के लिए मेरे पास निम्न कोड स्निपेट है:रूबी कोड कैसे दस्तावेज़ करें?

require 'open3' 

module ProcessUtils 

    # Runs a subprocess and applies handlers for stdout and stderr 
    # Params: 
    # - command: command line string to be executed by the system 
    # - outhandler: proc object that takes a pipe object as first and only param (may be nil) 
    # - errhandler: proc object that takes a pipe object as first and only param (may be nil) 
    def execute_and_handle(command, outhandler, errhandler) 
    Open3.popen3(command) do |_, stdout, stderr| 
     if (outhandler) 
     outhandler.call(stdout) 
     end 
     if (errhandler) 
     errhandler.call(stderr) 
     end 
    end 
    end 
end 

यह अनुमान ठीक है, लेकिन शायद बेहतर/बेहतर दस्तावेज़ीकरण प्रथाएं हैं?

+0

http://shop.oreilly.com/product/9780596516178.do स्रोत कोड में एक अच्छा छोटा उदाहरण है। अध्याय 2 लिस्टिंग में देखो। यह यहां जवाब की तरह है। मैंने स्रोत कोड दिखाने के लिए rdoc के साथ खेला है। आप my_code.rb.txt पर my_code.rb जैसे कुछ फ़ाइल एक्सटेंशन बना सकते हैं और फिर उस पर rdoc चला सकते हैं। > rdoc my_code.rb.txt तो यह कक्षाओं और मॉड्यूल के बारे में कोई फर्क नहीं पड़ता क्योंकि rdoc वैसे भी इसके लिए एचटीएमएल प्रस्तुत करेगा। इसके साथ मजे करो। –

उत्तर

164

आपको अपने दस्तावेज़ को आरडीओसी प्रोसेसर के लिए लक्षित करना चाहिए, जो आपके दस्तावेज़ों को ढूंढ सकता है और इससे HTML उत्पन्न कर सकता है। आपने अपनी टिप्पणी सही जगह पर रखी है, लेकिन आपको टैग्स के प्रकारों के बारे में जानने के लिए RDoc documentation पर एक नज़र रखना चाहिए जो कि आरडीओसी को प्रारूपित करने के बारे में पता है। इसके लिए मैं अपनी टिप्पणी के रूप में निम्नानुसार पुन: फ़ॉर्मेट चाहते हैं:

# Runs a subprocess and applies handlers for stdout and stderr 
    # Params: 
    # +command+:: command line string to be executed by the system 
    # +outhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil) 
    # +errhandler+:: +Proc+ object that takes a pipe object as first and only param (may be nil) 
+0

मुझे दस्तावेज़ कैसे करना चाहिए कि आउटहाउंडर और इरांडलर पैरामीटर शून्य हो सकते हैं? – StackedCrooked

+7

यार्ड की टिप्पणियां अधिक शक्तिशाली हो सकती हैं, लेकिन जब तक कि यह आरडीओसी के बजाय मानक रूबी वितरण में शामिल नहीं हो जाती है, इसकी टिप्पणियां मानक नहीं होती हैं। –

+0

आरडीओसी लिंक टूटा हुआ है इसे आजमाएं: https://github.com/ruby/rdoc। अगर मैं उस लिंक से खुश हूं तो मैं जवाब संपादित करने का अनुरोध करूंगा। –

2

कैनोनिकल RDoc यह आपके द्वारा पोस्ट किए गए एक जैसा ही है।

लिंक पर नमूना अनुभाग मैं तुम्हें

24

भेजा मैं होता अत्यधिकRDoc उपयोग करने का सुझाव देखें। यह काफी मानक है। कोड टिप्पणियों को पढ़ना आसान है, और यह आपको अपने प्रोजेक्ट के लिए आसानी से वेब-आधारित दस्तावेज़ बनाने की अनुमति देता है।

8

तुम भी रूबी के लिए TomDoc जांच कर सकते हैं के लिए दस्तावेज़ है - संस्करण 1.0.0-RC1।

http://tomdoc.org/

+0

FWIW, यह गिटहब शैली मार्गदर्शिका में निर्दिष्ट है - https://github.com/styleguide/ruby –

+0

धन्यवाद, रूबी कोड को दस्तावेज करने के लिए टॉमडॉक सर्वोत्तम वर्तमान प्रथाओं के लिए एक अच्छा स्रोत प्रतीत होता है। "कैसे" और "क्यों" का उत्तर देता है जो स्पष्ट रूप से rdoc दस्तावेज़ से अनुपलब्ध है। –

+0

टॉमडोक को अद्यतित नहीं रखा गया है। अंतिम प्रतिबद्धता मई 2012 थी। – maasha

16

मैं RDoc पता करने के लिए के रूप में कहा गया है हो रही सुझाव है। लेकिन साथ ही बहुत लोकप्रिय YARD A Ruby Document उपकरण को अनदेखा न करें। रुबी के लिए आप ऑनलाइन देखे जाने वाले बहुत सारे दस्तावेज यार्ड का उपयोग करते हैं। आरवीएम यार्ड जानता है और यह उपलब्ध होने पर आपकी मशीन पर आपके दस्तावेज़ को उत्पन्न करने के लिए इसका उपयोग करता है।

यार्ड का उपयोग अभी भी आवश्यक होगा, क्योंकि यार्ड इसका उपयोग करता है।

+1

ज्यादातर सी ++, जावा, स्कैला और PHP का उपयोग करने के बाद, मुझे '@ टैग' नोटेशन बहुत परिचित लगता है। – doub1ejack

+0

यह चार साल हो गया है और यार्ड काफी विकसित हुआ है।यह एक दयालु बात है कि अभी भी रूबी में यार्ड शामिल नहीं है। (वैसे यार्ड होमपेज HTTPS स्वीकार करता है।) –

संबंधित मुद्दे