Module: RDoc
| Relationships & Source Files | |
| Namespace Children | |
|
Modules:
| |
|
Classes:
Alias,
AnyMethod,
Attr,
ClassModule,
CodeObject,
Comment,
Constant,
Context,
CrossReference,
ERBIO,
ERBPartial,
Example,
Extend,
Include,
Markdown,
Markup,
MethodAttr,
Mixin,
NormalClass,
NormalModule,
Options,
Parser,
RD,
RDoc,
Require,
RubyGemsHook,
RubygemsHook,
Server,
SingleClass,
Stats,
Store,
Task,
TomDoc,
TopLevel | |
|
Exceptions:
| |
| Defined in: | lib/rdoc.rb, lib/rdoc/known_classes.rb, lib/rdoc/rbs_helper.rb, lib/rdoc/rubygems_hook.rb, lib/rdoc/version.rb, lib/rdoc/markup/blank_line.rb, lib/rdoc/markup/element.rb, lib/rdoc/markup/hard_break.rb, lib/rdoc/markup/heading.rb, lib/rdoc/markup/raw.rb, lib/rdoc/markup/table.rb |
Overview
RDoc produces documentation for Ruby source files by parsing the source and
extracting the definition for classes, modules, methods, includes and
requires. It associates these with optional documentation contained in an
immediately preceding comment block then renders the result using an output
formatter.
For a simple introduction to writing or generating documentation using RDoc
see the README.
Roadmap
If you think you found a bug in RDoc see CONTRIBUTING@Bugs
If you want to use RDoc to create documentation for your Ruby source files,
see Markup and refer to rdoc --help for command line usage.
If you want to set the default markup format see RDoc::Markup@Markup+Formats
If you want to store rdoc configuration in your gem (such as the default markup format) see RDoc::Options@Saved+Options
If you want to write documentation for Ruby files see ::RDoc::Parser::Ruby
If you want to write documentation for extensions written in C see
::RDoc::Parser::C
If you want to generate documentation using rake see Task.
If you want to drive RDoc programmatically, see RDoc.
If you want to use the library to format text blocks into HTML or other
formats, look at Markup.
If you want to make an RDoc plugin such as a generator or directive handler
see RDoc.
If you want to write your own output generator see Generator.
If you want an overview of how RDoc works see CONTRIBUTING
Credits
RDoc is currently being maintained by Eric Hodel drbrain@segment7.net.
Dave Thomas dave@pragmaticprogrammer.com is the original author of RDoc.
- The Ruby parser in rdoc/parse.rb is based heavily on the outstanding work of Keiju ISHITSUKA of Nippon Rational Inc, who produced the Ruby parser for irb and the rtags package.
Constant Summary
-
ATTR_MODIFIERS =
# File 'lib/rdoc.rb', line 89
RDocmodifiers for attributesGENERAL_MODIFIERS -
CLASS_MODIFIERS =
# File 'lib/rdoc.rb', line 84
RDocmodifiers for classesGENERAL_MODIFIERS -
CONSTANT_MODIFIERS =
# File 'lib/rdoc.rb', line 94
RDocmodifiers for constantsGENERAL_MODIFIERS -
DOT_DOC_FILENAME =
# File 'lib/rdoc.rb', line 74
Name of the dotfile that contains the description of files to be processed in the current directory
".document" -
GENERAL_MODIFIERS =
# File 'lib/rdoc.rb', line 79
General RDoc modifiers
%w[nodoc].freeze
-
KNOWN_CLASSES =
# File 'lib/rdoc/known_classes.rb', line 7
Ruby's built-in classes, modules and exceptions
{ "rb_cArray" => "Array", "rb_cBasicObject" => "BasicObject", "rb_cBignum" => "Bignum", "rb_cClass" => "Class", "rb_cData" => "Data", "rb_cDir" => "Dir", "rb_cEncoding" => "Encoding", "rb_cFalseClass" => "FalseClass", "rb_cFile" => "File", "rb_cFixnum" => "Fixnum", "rb_cFloat" => "Float", "rb_cHash" => "Hash", "rb_cIO" => "IO", "rb_cInteger" => "Integer", "rb_cModule" => "Module", "rb_cNilClass" => "NilClass", "rb_cNumeric" => "Numeric", "rb_cObject" => "Object", "rb_cProc" => "Proc", "rb_cRange" => "Range", "rb_cRefinement" => "Refinement", "rb_cRegexp" => "Regexp", "rb_cRubyVM" => "RubyVM", "rb_cSocket" => "Socket", "rb_cString" => "String", "rb_cStruct" => "Struct", "rb_cSymbol" => "Symbol", "rb_cThread" => "Thread", "rb_cTime" => "Time", "rb_cTrueClass" => "TrueClass", "rb_eArgError" => "ArgumentError", "rb_eEOFError" => "EOFError", "rb_eException" => "Exception", "rb_eFatal" => "fatal", "rb_eFloatDomainError" => "FloatDomainError", "rb_eIOError" => "IOError", "rb_eIndexError" => "IndexError", "rb_eInterrupt" => "Interrupt", "rb_eLoadError" => "LoadError", "rb_eNameError" => "NameError", "rb_eNoMemError" => "NoMemoryError", "rb_eNotImpError" => "NotImplementedError", "rb_eRangeError" => "RangeError", "rb_eRuntimeError" => "RuntimeError", "rb_eScriptError" => "ScriptError", "rb_eSecurityError" => "SecurityError", "rb_eSignal" => "SignalException", "rb_eStandardError" => "StandardError", "rb_eSyntaxError" => "SyntaxError", "rb_eSystemCallError" => "SystemCallError", "rb_eSystemExit" => "SystemExit", "rb_eTypeError" => "TypeError", "rb_eZeroDivError" => "ZeroDivisionError", "rb_mComparable" => "Comparable", "rb_mEnumerable" => "Enumerable", "rb_mErrno" => "Errno", "rb_mFConst" => "File::Constants", "rb_mFileTest" => "FileTest", "rb_mGC" => "GC", "rb_mKernel" => "Kernel", "rb_mMath" => "Math", "rb_mProcess" => "Process" } -
METHOD_MODIFIERS =
# File 'lib/rdoc.rb', line 99
RDocmodifiers for methodsGENERAL_MODIFIERS + %w[arg args yield yields notnew not-new not_new doc]
-
VERSION =
# File 'lib/rdoc/version.rb', line 8
RDocversion you are using'8.0.0' -
VISIBILITIES =
# File 'lib/rdoc.rb', line 68
Method visibilities
[:public, :protected, :private]
Class Method Summary
-
.home
Searches and returns the directory for settings.
-
.load_yaml
Loads the YAML backend used for
.rdoc_options. -
.safe_mtime(file)
Returns
File.mtime(file), ornilif the file cannot be stat'd (missing, permission denied, etc.). -
.yaml_serializer
The minimal YAML serializer module loaded by .load_yaml as a fallback.
Class Method Details
.home
Searches and returns the directory for settings.
- $HOME/.rdoc directory, if it exists.
- The
rdocdirectory under the path specified by theXDG_DATA_HOMEenvironment variable, if it is set. - $HOME/.local/share/rdoc directory.
Other than the home directory, the containing directory will be created automatically.
# File 'lib/rdoc.rb', line 153
def self.home rdoc_dir = begin File.('~/.rdoc') rescue ArgumentError end if File.directory?(rdoc_dir) rdoc_dir else require 'fileutils' begin # XDG xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.("~"), '.local', 'share') unless File.exist?(xdg_data_home) FileUtils.mkdir_p xdg_data_home end File.join xdg_data_home, "rdoc" rescue Errno::EACCES end end end
.load_yaml
Loads the YAML backend used for .rdoc_options.
Psych is preferred and used whenever it can be required. Requiring yaml
is not attempted as a fallback because yaml is merely a thin wrapper that
loads Psych anyway. When Psych is genuinely unavailable, a minimal
serializer shipped with RubyGems or Bundler is loaded instead, so that RDoc
does not need a runtime dependency on Psych. Callers branch on whether
Psych is defined and use .yaml_serializer otherwise.
# File 'lib/rdoc.rb', line 112
def self.load_yaml begin gem 'psych' rescue NameError => e # --disable-gems raise unless e.name == :gem rescue Gem::LoadError end begin require 'psych' rescue ::LoadError # Psych is unavailable; load the stub serializer shipped with RubyGems, # or Bundler's copy on RubyGems older than 3.5 (Ruby 3.2) where # rubygems/yaml_serializer does not exist yet. begin require 'rubygems/yaml_serializer' rescue ::LoadError require 'bundler/yaml_serializer' end end end
.safe_mtime(file)
Returns File.mtime(file), or nil if the file cannot be stat'd
(missing, permission denied, etc.).
# File 'lib/rdoc.rb', line 179
def self.safe_mtime(file) File.mtime(file) rescue SystemCallError nil end
.yaml_serializer
The minimal YAML serializer module loaded by .load_yaml as a fallback. Only meaningful when Psych is not defined.
# File 'lib/rdoc.rb', line 138
def self.yaml_serializer defined?(Gem::YAMLSerializer) ? Gem::YAMLSerializer : Bundler::YAMLSerializer end