Ruby kodu nasıl belgelenir?


201

Ruby kodunu belgelendirirken belirli kod kuralları var mı? Örneğin, aşağıdaki kod parçacığı var:

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

Bu tahmin bu iyi, ama belki de daha iyi / üstün dokümantasyon uygulamaları var?


shop.oreilly.com/product/9780596516178.do kaynak kodunda güzel bir örnek var. Bölüm 2 listesine bakınız. Buradaki cevap gibi. Sadece kaynak kodunu göstermek için rdoc ile oynadım. Dosya uzantısını my_code.rb to my_code.rb.txt gibi bir şey yapabilir ve sonra rdoc dosyasını çalıştırabilirsiniz. > rdoc my_code.rb.txt, sınıflar ve modüller için önemli olmayacaktır çünkü rdoc yine de bunun için html oluşturacaktır. Onunla eğlenin.
Douglas G. Allen

Yanıtlar:


198

Belgelerinizi bulabilen ve ondan HTML oluşturabilen RDoc işlemci için belgelerinizi hedeflemelisiniz. Yorumunuzu bunun için doğru yere koydunuz, ancak RDoc'un nasıl biçimlendireceğini bildiği etiket türleri hakkında bilgi edinmek için RDoc belgelerine bakmalısınız . Bu amaçla, yorumunuzu aşağıdaki gibi yeniden biçimlendiririm:

  # 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)

Outhandler ve errhandler parametrelerinin sıfır olabileceğini nasıl belgelemeliyim?
StackedCrooked

10
YARD'ın ek açıklamaları daha güçlü olabilir, ancak RDoc yerine standart Ruby dağıtımına dahil edilene kadar ek açıklamaları standart değildir.
Ken Bloom

RDoc bağlantısı kopuk: şunu deneyin: github.com/ruby/rdoc . Herkes bu bağlantıdan memnunsa cevabı düzenlemeyi isteyeceğim.
Jordan Stewart

27

RDoc kullanmanızı şiddetle tavsiye ederim . Bu hemen hemen standart. Kod yorumlarını okumak kolaydır ve projeniz için kolayca web tabanlı belgeler oluşturmanıza olanak tanır.


24

Belirtildiği gibi RDoc'u tanımanızı öneririm. Ama çok popüler olan YARD A Ruby Belgesini görmezden gelmeyin aracını . Ruby için çevrimiçi göreceğiniz belgelerin çoğu Yard'ı kullanır. RVM, Yard'ı bilir ve varsa, makinenizde belgelerinizi oluşturmak için kullanır.

Yard kullandığı için RDoc yine de gerekli olacaktı.


1
Çoğunlukla C ++, Java, Scala ve PHP kullandıktan sonra @taggösterimi çok tanıdık buluyorum .
doub1ejack

1
Dört yıl oldu ve YARD büyük ölçüde gelişti. YARD'ın hala Ruby'ye dahil olmaması üzücü. (Bu arada YARD ana sayfası HTTPS'yi kabul ediyor.)
Franklin Yu

1
YARD, RDoc'tan daha hafif görünüyor! Teşekkürler :)
Constantin De La Roche


9

TomDoc for Ruby - Sürüm 1.0.0-rc1'i de kontrol edebilirsiniz.

http://tomdoc.org/


FWIW, bu GitHub stil kılavuzunda belirtilmiştir - github.com/styleguide/ruby
Michael Easter

Teşekkürler, yakut kodunu belgelemek söz konusu olduğunda tomdoc en iyi güncel uygulamalar için iyi bir kaynak gibi görünüyor. Görünüşe göre rdoc belgelerinde eksik olan "nasıl" ve "neden" yanıtlarını verir.
Michael Renner

TomDoc güncel tutulmadı. Son taahhüt Mayıs 2012 idi.
maasha

1
@maasha 2017 yılına kadar, düz RDoc'un yanı sıra en iyi bahsin YARD olacağına inanıyorum, şimdi içeriği ayrıştırıyor ve sınıflara ve yöntemlere süslü köprüler yapıyor.
Franklin Yu

2

Kurallı RDoc , yayınladığınıza çok benzer.

Size gönderdiğim bağlantıdaki örnek bölüme bakın


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.