我查找了帶有gem的模板(我只能找到默認的HTML輸出器),我搜索了一個將重定向到STDOUT的開關的幫助和在線文檔。我無法找到任何有關如何處理此問題的信息。如何讓Yardoc輸出到標準輸出?
有沒有一種簡單的方法來做到這一點(也許是一個shell命令?)還是我有通過源代碼?
我查找了帶有gem的模板(我只能找到默認的HTML輸出器),我搜索了一個將重定向到STDOUT的開關的幫助和在線文檔。我無法找到任何有關如何處理此問題的信息。如何讓Yardoc輸出到標準輸出?
有沒有一種簡單的方法來做到這一點(也許是一個shell命令?)還是我有通過源代碼?
創建以下文件作爲test.rb
:之前您可以輸出這個
# This class is cool
class Test
# This method is also cool
def foo
end
end
您必須編譯院子文檔。但是你不想doc
文件夾正確嗎?所以讓我們省略一下。
yardoc --no-output test.rb
這隻會更新隱藏的.yardoc
文件夾內的文檔。 doc
文件夾將不會生成。現在
你可以看到在幾個方面爲特定對象的文檔:
> yard display "Test"
# Outputs:
------------------------------------------ Class: Foo < Object
This class is cool
--------------------------------------------------------------
> yard display "Test#foo"
# Outputs:
------------------------------------------ Method: #meth (Foo)
(Defined in: foo.rb)
foo.meth -> Object
--------------------------------------------------------------
This method is cool
這是你得到的輸出。您可以使用yard display
命令獲取任何類別/方法的代碼文檔。
但是,嘿,輸出糟透了!我們來爲它創建一個模板。有幾個文件創建以下文件夾templates
:
+ your app
+ templates
+ default
+ class
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
+ method
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
+ method_details
| + text
| + setup.rb
| def init
| super
| sections T('docstring')
| end
所有setup.rb
文件必須具有相同的內容,如def init, super, sections T('docstring'), end
。這將使text
輸出只顯示文檔,沒有任何花哨的標題和內容。
現在只需運行相同yard display
命令,但讓我們使用自定義模板:
> yard display Foo --template-path ./templates
This class is cool
> yard display "Foo#meth" --template-path ./templates
This method is cool
就是這樣。你可能發現yard doc
可能在輸出中有太多的前導/尾隨新行,你可以使用一些其他標準的linux head/tail
命令來解決這個問題。
爲什麼你需要這種功能? – luacassus
您是否試圖避免將文檔寫入磁盤?或者您是否想要在控制檯中查看生成的文檔? – davogones
@davogones我想這樣做,因爲...... @luacassus我正在編寫一個控制檯應用程序,而不是複製文檔,我可以編寫這些代碼,並在調用'help'時輸出某些標記。 – iain