Create the following file as
test.rb
:# This class is cool class Test # This method is also cool def foo end end
You must compile the yard documentation before you can output this. But you don't want the
doc
folder right? So let's omit that.yardoc --no-output test.rb
This will only update the documentation inside
.yardoc
folder which is hidden. Thedoc
folder will not be generated.Now you can see the documentation for specific objects in a few ways:
> 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
This is the output that you get. You can get the yard documentation for any class/method using the
yard display
command.But hey, the output sucks! Let's create a template for it. Create the following
templates
folder with a few files:+ 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
All the
setup.rb
files must have the same content likedef init, super, sections T('docstring'), end
. This will make thetext
output display only the documentation, without any fancy headers and stuff.Now just run the same
yard display
command, but let's use our custom templates:> yard display Foo --template-path ./templates This class is cool > yard display "Foo#meth" --template-path ./templates This method is cool
That's it. You may find that the
yard doc
may have too much of leading/trailing new lines in the output, you can use some other standard linuxhead/tail
commands to fix that.
How to get Yardoc to output to STDOUT?
Question
I've looked for templates that come with the gem (I can only find the default HTML outputter), I've searched the help and online docs for a switch that will redirect to STDOUT. I can't find anything on how I might approach this.
Is there an easy way to do this (perhaps a shell command?) or do I have wade through the source code?
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow