Type:
Class
Constants:
NORMAL : "::"

RDoc::NormalClass type

SINGLE : "<<"

RDoc::SingleClass type

Extracts code elements from a source file returning a TopLevel object containing the constituent file elements.

This file is based on rtags

RubyParser understands how to document:

  • classes

  • modules

  • methods

  • constants

  • aliases

  • private, public, protected

  • private_class_function, public_class_function

  • module_function

  • attr, attr_reader, attr_writer, attr_accessor

  • extra accessors given on the command line

  • metaprogrammed methods

  • require

  • include

Method Arguments

The parser extracts the arguments from the method definition. You can override this with a custom argument definition using the :call-seq: directive:

##
# This method can be called with a range or an offset and length
#
# :call-seq:
#   my_method(Range)
#   my_method(offset, length)

def my_method(*args)
end

The parser extracts yield expressions from method bodies to gather the yielded argument names. If your method manually calls a block instead of yielding or you want to override the discovered argument names use the :yields: directive:

##
# My method is awesome

def my_method(&block) # :yields: happy, times
  block.call 1, 2
end

Metaprogrammed Methods

To pick up a metaprogrammed method, the parser looks for a comment starting with '##' before an identifier:

##
# This is a meta-programmed method!

add_my_method :meta_method, :arg1, :arg2

The parser looks at the token after the identifier to determine the name, in this example, :meta_method. If a name cannot be found, a warning is printed and 'unknown is used.

You can force the name of a method using the :method: directive:

##
# :method: some_method!

By default, meta-methods are instance methods. To indicate that a method is a singleton method instead use the :singleton-method: directive:

##
# :singleton-method:

You can also use the :singleton-method: directive with a name:

##
# :singleton-method: some_method!

Additionally you can mark a method as an attribute by using :attr:, :attr_reader:, :attr_writer: or :attr_accessor:. Just like for :method:, the name is optional.

##
# :attr_reader: my_attr_name

Hidden methods and attributes

You can provide documentation for methods that don't appear using the :method:, :singleton-method: and :attr: directives:

##
# :attr_writer: ghost_writer
# There is an attribute here, but you can't see it!

##
# :method: ghost_method
# There is a method here, but you can't see it!

##
# this is a comment for a regular method

def regular_method() end

Note that by default, the :method: directive will be ignored if there is a standard rdocable item following it.

collect_first_comment

collect_first_comment() Instance Public methods Look for the first comment in

2015-05-03 15:41:30
make_message

make_message(message) Instance Public methods Adds useful info about the parser

2015-05-03 16:26:19
parse_method_or_yield_parameters

parse_method_or_yield_parameters(method = nil, modifiers = RDoc::METHOD_MODIFIERS) Instance Public methods

2015-05-03 17:23:05
look_for_directives_in

look_for_directives_in(context, comment) Instance Public methods Look for directives

2015-05-03 16:23:58
skip_tkspace_comment

skip_tkspace_comment(skip_nl = true) Instance Public methods Skip spaces until

2015-05-03 18:39:34
parse_constant

parse_constant(container, tk, comment, ignore_constants = false) Instance Public methods

2015-05-03 16:57:16
new_comment

new_comment(comment) Instance Public methods Creates a comment with the correct

2015-05-03 16:30:51
scan

scan() Instance Public methods Scans this ruby file for ruby constructs

2015-05-03 18:21:02
parse_symbol_arg

parse_symbol_arg(no = nil) Instance Public methods Parse up to no

2015-05-03 17:51:28
get_symbol_or_name

get_symbol_or_name() Instance Public methods Extracts a name or symbol from

2015-05-03 16:17:55